Как получить уникальный идентификатор клиента на сервере? - PullRequest
2 голосов
/ 25 июня 2009

Я создаю EventLog, который будет регистрировать журнал транзакций на моем веб-сайте. Данные журнала будут включать в себя общедоступный IP-адрес, с которого была инициирована транзакция, а также локальный IP-адрес (под общедоступным IP-адресом).

Я нашел способы получения публичного IP-адреса, но не могу определить локальный IP-адрес или IP-адрес компьютера, с которого выполняется транзакция.

Большое количество записей будет сделано людьми, использующими одно и то же соединение. то есть 5 или 10 компьютеров, подключенных к одному и тому же соединению.

Мне нужно найти IP-адрес машины (192.168.0.1 для 1 системы, 192.168.0.2 для следующей) машин, совершающих транзакции, а также имя компьютера ...

Возможно ли это

Ответы [ 7 ]

4 голосов
/ 25 июня 2009

Чтобы уточнить, вы хотите частный IP-адрес клиента, когда клиент подключается через маршрутизатор? Тогда нет, нет способа сделать это.

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

Можете ли вы использовать другой метод, такой как куки?

1 голос
/ 25 июня 2009

К сожалению, ответ - нет. Ни один современный браузер не представит этот частный адрес в транзакции HTTP. Маршрутизатор клиента, который выполняет NAT (преобразование сетевых адресов), предлагает только публичный IP-адрес клиента при установлении IP-соединения.

1 голос
/ 25 июня 2009

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

0 голосов
/ 26 июня 2009

Это, вероятно, намного больше того, что вы ищете, но оно интересно для чтения: Отпечатки удаленных физических устройств

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

0 голосов
/ 26 июня 2009

Вы делаете ложное предположение, что существует способ узнать, с какого компьютера вводится каждая запись. Никто не должен гарантировать, что эта информация существует. Часто его не будет.

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

Нет другого уникального идентификатора для компьютеров.

0 голосов
/ 26 июня 2009

Ну, да, мы делаем это только для того, чтобы различать компьютеры, чтобы знать, кто делает записи ...

Поскольку вы, ребята, говорите, что отслеживание IP не очень надежно, есть ли другие способы, которые я могу использовать, чтобы сделать то же самое

Мне просто нужно знать, с какого компьютера вводится каждая запись.

Любые предложения приветствуются

0 голосов
/ 25 июня 2009

Маловероятно. Смотрите краткое обсуждение в http://javascript.about.com/library/blip.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...