Как проверить, что в Java IP-адрес соответствует серверу, на котором запущено приложение - PullRequest
1 голос
/ 17 ноября 2011

Целью является проверка того, что приложение запущено на данном сервере.Некоторая проверка лицензии.

В идеале лицензия должна содержать IP-адрес, а некоторый код Java проверит, что этот IP-адрес является тем, где выполняется процесс Java.

Подумайте о NAT,облака, узлы, виртуальные машины и все маленькие звери.

Любые советы, идеи приветствуются

Ответы [ 3 ]

1 голос
/ 17 ноября 2011

Чтобы убедиться, что InetAddress связан с текущим компьютером, вы должны проверить:

  1. Если адрес является специальным синонимом для localhost:

    address.isAnyLocalAddress() || address.isLoopbackAddress()

  2. Если адрес является IP-адресом, назначенным локальному интерфейсу:

    NetworkInterface.getByInetAddress(address) != null

1 голос
/ 17 ноября 2011

InetAddress.getLocalHost().getAddress() дает вам IP-адрес localhost.

0 голосов
/ 17 ноября 2011

Запустите приложение лицензии как сокет сервера и приложение как сокет клиента. Сервер подключается и запрашивает разрешение на запуск или завершение работы. Клиент, получивший пакет, знает, с какого ip-сервера поступил запрос, и отвечает OK или НЕ OK. на основе этого сервера работает или завершает работу. вы можете использовать некоторые возможности, чтобы люди не могли эмулировать ваш сервер лицензирования.

...