我有4台通过局域网连接的电脑。我正在制作一个PHP程序,将区分每台电脑分别,我将保持每台电脑的记录。
但是,当我获得一个IP地址时,我得到的IP地址是相同的。我想我应该分别检索所有pcs的MAC地址,但我不知道如何获取MAC地址。
我使用的是Linux操作系统。
编程技巧将不胜感激。
发布于 2010-10-31 21:19:42
据我所知,您不能仅使用PHP来做到这一点。但是,如果您在服务器上具有exec()权限,则可以使用:
arp -a ipaddress
其中,ipaddress是LAN上计算机的IP地址。您需要使用诸如regex之类的命令来将MAC地址与输出的其余部分分开。
发布于 2010-10-31 21:23:41
我不认为mac-adress包含在http-header中。所以可能很难通过php获得它。我觉得你最好还是试着解决这个ip问题。对不起,我不能再帮你了。
编辑:实际上...我四处寻找了一下,找到了一个可能的解决方案:
$mac = `ping -c 1 $ip && arp -a | grep $ip`
不过,您可能必须对输出进行解析。我在eth0上得到: xxx.xxx.local (192.168.0.10) at d5:c2:c3:13:a2:b1 ether
执行arp -a 192.168.0.10时
编辑:就像状态下的帖子一样,你需要exec-权限。
编辑:对不起,我刚刚意识到为了让它工作,你需要ip地址...而你却没有。
发布于 2010-10-31 21:22:03
PEAR的Net_Ping是一个用于执行来自PHP的ping调用的精巧的包装类。您可以使用它检查远程服务器是否正确响应。该库可以从here下载。
pear install Net_Ping-2.4.4
<?php
require_once "Net/Ping.php";
$ping = Net_Ping::factory();
if(PEAR::isError($ping))
echo $ping->getMessage();
else
{
/* Number of packets to send */
$ping->setArgs(array('count' => 4));
$rawData = $ping->ping('google.com');
print_r($rawData);
}
?>
https://stackoverflow.com/questions/4063222
复制相似问题