Macos 如何知道2局域网pc与我的php程序连接?

Macos 如何知道2局域网pc与我的php程序连接?,macos,Macos,我有4台通过局域网连接的电脑。我正在制作一个PHP程序,它将 分别区分每台电脑,我将保留每台电脑的记录 但是当我得到一个IP地址时,我得到的是所有人的相同IP。我想我应该分别检索所有PC的MAC地址,但我不知道如何获取MAC地址 我正在使用Linux操作系统 编程技巧将不胜感激。据我所知,单凭PHP无法做到这一点。但是,如果您在服务器上具有exec()权限,则可以使用: arp -a ipaddress 其中ipaddress是局域网上计算机的IP地址。您需要使用类似regex的东西将MAC地

我有4台通过局域网连接的电脑。我正在制作一个PHP程序,它将 分别区分每台电脑,我将保留每台电脑的记录

但是当我得到一个IP地址时,我得到的是所有人的相同IP。我想我应该分别检索所有PC的MAC地址,但我不知道如何获取MAC地址

我正在使用Linux操作系统


编程技巧将不胜感激。

据我所知,单凭PHP无法做到这一点。但是,如果您在服务器上具有exec()权限,则可以使用:

arp -a ipaddress

其中ipaddress是局域网上计算机的IP地址。您需要使用类似regex的东西将MAC地址与输出的其余部分分开。

PEAR的Net\u-Ping是一个漂亮的包装类,用于执行来自PHP的Ping调用。您可以使用它来检查远程服务器是否正确响应。该库可从下载

pear安装Net\u Ping-2.4.4

我认为http头中不包括mac地址。因此,可能很难通过php获得它。我认为你最好设法解决ip问题。对不起,我不能再帮你了

编辑: 事实上我四处搜索了一下,找到了一个可能的解决方案:

$mac = `ping -c 1 $ip && arp -a | grep $ip`
不过,您可能需要解析输出。我得到: xxx.xxx.local(192.168.0.10)在eth0上的d5:c2:c3:13:a2:b1[乙醚]

执行arp时-a 192.168.0.10

编辑: 就像《州邮报》一样,你也需要执行权

编辑:
抱歉,我刚刚意识到为了让它工作,你需要ip。。。您没有。

“当我得到一个IP地址时,我得到的所有IP都是相同的”。你是怎么得到IP的?嗨,你想做什么?您是否正在尝试查找运行PHP代码的服务器的IP地址?或者,您是否要添加以检查局域网中有多少机器也在运行相同的应用程序?请详细说明。我必须通过局域网或单台电脑保持电脑的每一个性能。我猜“http”标题保持所有电脑的差异。如果我解析“http”,那么我可能知道哪个正在访问我的程序。是吗?计算机的MAC地址特定于计算机的网卡,而IP地址不是。您可以通过比较一台机器和另一台机器的MAC地址来区分它们。除非我误解了您的问题,否则我认为您不需要进入HTTP头领域(因为ping和ARP请求不涉及HTTP头)。HTTP头不包含MAC地址。一些相关文件不在那里,比如Pear.php。我相信它的操作系统是独立的,请查看Pear文档
$mac = `ping -c 1 $ip && arp -a | grep $ip`