Я считаю, что вы должны попробовать другой подход.
IP не поможет вам идентифицировать машины. Просто подумайте, что у меня дома есть точка беспроводного доступа, и все устройства, подключенные к Интернету, имеют одинаковый IP-адрес. Или что в моей компании мы используем прокси-сервер, и мой компьютер отправляет запросы, меняя 2 разных IP-адреса.
Несколько компаний, занимающихся разработкой программного обеспечения, решают эту проблему, обязывая клиента установить аппаратную карту, которая служит ключом для разблокировки приложения на конкретном ПК, но лицензии такого типа на программное обеспечение SOTFWAR стоят 4 или более цифр. И это ужасный UX. Просто представьте, что каждый раз, когда вы переустанавливаете ОС или другие аппаратные компоненты, вы должны выполнять процесс разблокировки с нуля (помимо этого часто требуется телефонный звонок в центр поддержки компании).
Возможно, вы могли бы попробовать двухфакторную аутентификацию, запросив, кроме имени пользователя, однократный пароль, отправленный с помощью SMS на уникальный номер телефона для каждого пользователя. И ограничить количество запросов на номер телефона 5 в час и 10 в день или около того.
Вы также можете попробовать популярную модель Freemium. Бесплатные пользователи получают минимальную функциональность, и только платные клиенты имеют доступ к хорошим вещам.
Но имейте в виду, что я не знаю, какое программное обеспечение вы предоставляете, поэтому, возможно, решения такого рода также не подойдут.