我正在获取客户端(网站用户)的IP地址。现在我想通过了解用户的计算机名称来更进一步。到目前为止,我的研究还没有发现任何东西来帮助我检索这些信息。
是否可以使用用户的IP地址或其他方式使用PHP获取访问者的计算机名称?
答案 0 :(得分:5)
PHP 5.4 +
gethostbyaddr($_SERVER['REMOTE_ADDR'])
答案 1 :(得分:4)
您可以使用gethostbyaddr()
执行反向DNS查找。
请注意,这将根据反向DNS为您提供请求来自的主机的名称。
答案 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();
?>