имя пользователя computername из CGI - PullRequest
3 голосов
/ 27 декабря 2010

Есть ли способ получить имя пользователя и имя компьютера удаленного клиента через CGI в Perl? Я попытался напечатать хэш ENV в CGI-скрипте, но не смог получить эту информацию

Ответы [ 3 ]

3 голосов
/ 27 декабря 2010

Нет.Эта информация не передается по HTTP и может вообще не существовать (например, мой телефон не требует, чтобы я входил под именем пользователя, это однопользовательское устройство).

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

2 голосов
/ 27 декабря 2010

Проверьте методы remote_host и remote_addr . Скорее всего, они подберут вас так близко, как вы сможете найти «имя компьютера». Имя пользователя, скорее всего, вообще не передается через http заголовки (например, технически вы можете считать, что авторизация и / или заголовок электронной почты близки, однако в большинстве случаев вряд ли он будет заполнен).

Метод remote_host, в частности, выполняет обратный поиск DNS. Если что-то будет возвращено, вы получите результат, иначе вы просто получите удаленный адрес (например, ip).

0 голосов
/ 27 декабря 2010

Ну, в теории, да, вы можете.Сначала вам нужно получить IP клиента через переменную $ENV{'REMOTE_ADDR'}.Тогда вам нужно будет использовать модули сокетов, такие как Sockets или IO::Socket, если вы хотите более простой API (первый точно такой же, как сокеты C) и проверить определенный порт для этой информации;например, если пользователь работает под управлением Windows, он может открыть NetBios на порту 137, который обычно по умолчанию выдает имя компьютера.

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

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

Если вам нужна дополнительная информацияВы можете сделать свое собственное исследование, я дал вам основы ...

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