ник: osmor
А у вас уже есть серверная часть которая будет :
1 - каждый месяц генерить уникальный ключ для каждого клиента
2 - отвечать по HTTP (или еще какому) протоколу на запросы клиента
3- отдавать обновления только зарегистрированным клиентам
"Программа каждый раз при запуске проверяет чтобы ip-адрес компьютера, на котором запускает"
Какой IP? тот который указан в настройках машины с которой качали обновление (их кстати может быть несколько, у меня 3 штуки при одной сетевой карте) или тот с которым машина клиента соединяется с вашим сервером? (это могут быть, кстати так обычно и есть, совершенно разные адреса, и обычно рядовой клиент никак не может повлиять на то с каким IP он выйдет в инет, если только специально это не обговаривается при заключении договора с провайдером. Например мой рабочий комп (даже если я не использую какие-то прокси) может попасть на сайт с 4-х разных IP (это зависит от того по каком маршруту пустил мои пакеты провайдер)
В общем завязка на IP глухой вариант. см. совет Виктора.