如何使用PHP获取客户端计算机的MAC地址

3
我正在使用以下代码获取Mac ID。 获取Mac地址的代码:
<?php

ob_start(); // Turn on output buffering
system('ipconfig /all'); //Execute external program to display output
$mycom=ob_get_contents(); // Capture the output into a variable
ob_clean(); // Clean (erase) the output buffer

$findme = "Physical";
$pmac = strpos($mycom, $findme); // Find the position of Physical text
$mac=substr($mycom,($pmac+36),17); // Get Physical Address

echo $mac;
?>

但它返回的是服务器机器的MAC ID.. 我需要获取运行我的网页的PC的MAC ID。

有人能帮助我吗?


1
你做不到,客户端浏览器和Web服务器之间的所有IP通信都在更高的层级上。 - Mark Baker
4个回答

0

你需要使用JAVA(不是Javascript)来获取用户的连接信息。

所有的互联网连接和网络设备都有MAC地址,这用于识别设备、制造商和设备编号。

这需要依赖于用户机器上实现JAVA,并且是收集这些信息最可靠的方式。


0

MAC地址不会在PHP请求头中发送,因此您将无法通过该方式访问它。


-1

关于使用PHP + netstat正确解决方案,请参见如何在PHP中获取已连接客户端的MAC地址和IP地址?

这个问题已经过时了,但是我设法找到了它,而且所有其他回答都很愚蠢,让人知道你不需要使用Java,即使这些信息对php脚本没有直接暴露,但在某种程度上对于每个tcp连接都是可用的。

请注意,如果用户在NAT后面(这对于大多数用户来说可能是情况),您不太可能获得客户端真实的mac或ip地址。因此,它的有用性是另一回事。


-1

PHP可以作为独立服务安装,无需像Web服务器那样安装其他服务。只要您可以通过远程方法(例如SSH连接)获取ipconfig调用的输出,就可以通过这种方式抓取用户网络设备的MAC ID,但需要远程机器进行配置以允许并具备执行此操作的服务。 - Mark Giblin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接