Как определить, принадлежат ли два IP-адреса одному компьютеру? - PullRequest
3 голосов
/ 02 декабря 2011

У нас есть главная программа и агенты (оба) на стороне клиента на разных компьютерах.Конфигурация сети может быть любого типа (мы не знаем).Агенты подключаются к основной программе, и в настоящее время мы можем получить только IP-адрес и имя компьютера в качестве информации.Как определить, принадлежат ли два IP-адреса одному компьютеру?

На компьютерах может быть несколько карт Ethernet.

Спасибо.

Ответы [ 4 ]

5 голосов
/ 02 декабря 2011

Невозможно определить это, просто посмотрев на IP-адреса.

Некоторые компьютеры имеют уникальные идентификаторы, но для доступа к ним вам потребуется JNI, и ваш код будет очень платформенным-конкретный.Лучше было бы сгенерировать GUID и записать его в файл во временной папке на компьютере.Затем все экземпляры программного обеспечения, работающие на этом компьютере, будут считывать один и тот же GUID и могут предоставлять эти данные серверу при установлении соединения.

1 голос
/ 02 декабря 2011

Вы можете изменить агентов для отправки MAC-адресов указанных машин. Кроме того, вы не можете определить, действительно ли они одинаковы.

1 голос
/ 02 декабря 2011

Вы говорите, что получаете имя компьютера - не можете ли вы дублировать его на основе этого значения?

По всей сети, и при наличии только IP-адреса, вы не можете сказать.Способ работы NAT и тот факт, что современные ноутбуки и беспроводные устройства часто переходят из сети в сеть в течение дня, все, что вы видите, это общедоступный IP-адрес этой машины, который, скорее всего, является общим для всей группы или всей организации.машин.

Если вы не измените приложение агента, включив в него также уникальный идентификатор (например, MAC-адрес - который даже тогда говорит вам, что это уникальный NIC, а не обязательно уникальный компьютер, если у компьютеров есть несколько NIC),не повезло тебе. Невозможно определить уникальность только по IP-адресу.

Не знаю, какой у вас вариант использования, но , если это для запрета / отслеживания действий в приложении ,тогда для доступа к системе лучше потребовать какой-то уникальный идентификатор для машины (например, имя пользователя), чтобы вы знали, что вы можете запретить / отследить один экземпляр приложения или одного пользователя, вошедшего в любой экземпляр приложения.вместо того, чтобы пытаться решить такую ​​проблему с помощью IP-адресов.

0 голосов
/ 02 декабря 2011

Вы можете создать на своем компьютере сервис, который будет предоставлять уникальный идентификатор.Затем вы можете вызвать эту службу, используя разные IP-адреса в качестве имени хоста, и сравнить значения.

...