获取客户端的计算机名称

时间:2010-06-09 05:56:57

标签: php

我正在获取客户端(网站用户)的IP地址。现在我想通过了解用户的计算机名称来更进一步。到目前为止,我的研究还没有发现任何东西来帮助我检索这些信息。

是否可以使用用户的IP地址或其他方式使用PHP获取访问者的计算机名称?

8 个答案:

答案 0 :(得分:5)

PHP 5.4 +

gethostbyaddr($_SERVER['REMOTE_ADDR'])

答案 1 :(得分:4)

您可以使用gethostbyaddr()执行反向DNS查找。

请注意,这将根据反向DNS为您提供请求来自的主机的名称。

  • 如果未设置反向DNS,则不会显示结果
  • 它不会为您提供计算机的Windows名称
  • 如果涉及NAT,它将为您提供路由器的名称,如果涉及代理,则为代理。

答案 2 :(得分:3)

在服务器上运行普通php是不可能的。了解客户端的详细信息(例如计算机名称,mac地址,驱动器内容)是一个安全/隐私问题。

您需要在客户端的计算机上运行某种应用程序才能获得此功能。

答案 3 :(得分:3)

如果你指的是执行请求的计算机上的主机名(例如由linux上的hostname命令显示):

该信息未包含在HTTP请求中。 (也就是说,PHP无法弄明白。)

你可以进行反向DNS查找,但这可能不是你想要的。

答案 4 :(得分:2)

这就是你可以使用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()

答案 5 :(得分:0)

您唯一能做的就是尝试获取客户端的DNS名称。 “计算机名称”是Windows制作的东西。只需使用客户端的IP地址调用内置函数gethostbyaddr()即可。但是,它并不总是(几乎从未)起作用。

答案 6 :(得分:0)

您可以通过

执行此操作

$ _ SERVER [ 'REMOTE_HOST']

'REMOTE_HOST' - 用户查看当前页面的主机名。反向dns查找基于用户的REMOTE_ADDR。

注意:您的Web服务器必须配置为创建此变量。例如,在Apache中,您需要在httpd.conf中使用HostnameLookups才能存在。正如大卫所说,你也可以使用。 gethostbyaddr()

  

请通过所有评论   在实际使用之前的网址   功能

答案 7 :(得分:-3)

做点喜欢这件事:

     <?php
 //get host by name
 echo gethostname();
 echo "<br>";
 //get OS
 echo php_uname();
 ?>