我需要知道连接客户端的 MAC 和 IP 地址,如何在 PHP 中执行此操作?
服务器IP
您可以从以下位置获取服务器 IP 地址$_SERVER['SERVER_ADDR']
.
服务器MAC地址
对于 MAC 地址,您可以解析以下输出netstat -ie
在 Linux 中,或者ipconfig /all
在Windows中。
客户端IP地址
您可以从以下位置获取客户端 IP$_SERVER['REMOTE_ADDR']
客户端MAC地址
除以下特殊情况外,您将无法使用客户端 MAC 地址:如果客户端与服务器位于同一以太网段。
因此,如果您正在构建某种基于 LAN 的系统和您的客户端are在同一个以太网段上,那么您可以通过解析输出来获取MAC地址arp -n
(Linux)或arp -a
(视窗)。
Edit:您在评论中询问如何获取外部命令的输出 - 一种方法是使用反引号,例如
$ipAddress=$_SERVER['REMOTE_ADDR'];
$macAddr=false;
#run the external command, break output into lines
$arp=`arp -a $ipAddress`;
$lines=explode("\n", $arp);
#look for the output line describing our IP address
foreach($lines as $line)
{
$cols=preg_split('/\s+/', trim($line));
if ($cols[0]==$ipAddress)
{
$macAddr=$cols[1];
}
}
但是如果客户端不在 LAN 上怎么办?
好吧,除非您能让客户自愿提供该信息并通过其他方式传输,否则您就不走运了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)