Получить имя компьютера клиента

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

Можно ли использовать IP-адрес пользователя или какие-либо другие средства для получения имени компьютера моего посетителя с помощью PHP?

PHP 5.4+

gethostbyaddr($_SERVER['REMOTE_ADDR']) 

Вы можете выполнить обратный поиск DNS с помощью gethostbyaddr() .

Обратите внимание, что это даст вам имя хоста, из которого пришел запрос, в соответствии с обратным DNS.

  • Это не даст вам результата, если обратный DNS не настроен
  • Он не даст вам имя компьютера Windows
  • Это даст вам имя маршрутизатора, если задействован NAT или прокси-сервер, если задействован прокси-сервер.

Невозможно запустить простой 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(); ?>