Я получаю IP-адрес клиента (веб-сайта пользователя). Теперь я хотел бы сделать еще один шаг, зная имя компьютера пользователя. До сих пор мои исследования ничем не помогли мне в получении этой информации.
Можно ли использовать IP-адрес пользователя или какие-либо другие средства для получения имени компьютера моего посетителя с помощью PHP?
PHP 5.4+
gethostbyaddr($_SERVER['REMOTE_ADDR'])
Вы можете выполнить обратный поиск DNS с помощью gethostbyaddr()
.
Обратите внимание, что это даст вам имя хоста, из которого пришел запрос, в соответствии с обратным DNS.
Невозможно запустить простой php на сервере. Было бы проблемой безопасности / конфиденциальности, чтобы узнать подробности о клиенте, такие как имя компьютера, адрес mac, содержимое его диска.
Для этого вам нужно какое-то приложение, запущенное на машине клиента.
Если вы ссылаетесь на имя хоста (отображаемое, например, командой hostname
в linux) компьютера, выполняющего запрос:
Эта информация не включена в HTTP-запрос. (То есть, PHP не может понять.)
Вы можете сделать обратный поиск DNS, но это, вероятно, не так, как вы хотите.
Единственное, что вы можете сделать, это попытаться получить DNS-имя для клиента. «Имя компьютера» – это созданная Windows вещь. Просто вызовите встроенную функцию gethostbyaddr()
с IP-адресом клиента. Однако это не всегда (вряд ли когда-либо) работает.
Вы можете это сделать
$ _SERVER [ 'REMOTE_HOST']
«REMOTE_HOST» – имя хоста, с которого пользователь просматривает текущую страницу. Обратный поиск dns основан на REMOTE_ADDR пользователя.
Примечание. Ваш веб-сервер должен быть настроен для создания этой переменной. Например, в Apache вам понадобятся HostnameLookups. Внутри httpd.conf для его существования. Как сказал Дэвид, вы также можете использовать. gethostbyaddr ()
Pls проходит через все комментарии в URL-адресе, прежде чем использовать функцию.
Это все, что вы могли бы использовать только PHP (вы можете попробовать это, но я не думаю, что это то, что вам действительно нужно):
gethostname() gethostbyname(gethostname()) $_SERVER['HTTP_HOST'] $_SERVER['SERVER_SIGNATURE'] $_SERVER['SERVER_NAME'] $_SERVER['SERVER_ADDR'] $_SERVER['SERVER_PORT'] $_SERVER['REMOTE_ADDR'] gethostbyaddr($_SERVER['REMOTE_ADDR']) php_uname()
Сделайте что-нибудь подобное:
<?php //get host by name echo gethostname(); echo "<br>"; //get OS echo php_uname(); ?>