客户端MAC地址

时间:2013-11-29 15:30:46

标签: javascript php

我正在寻找基于php的网络获取MAC地址的解决方案。我正在运行appache服务器,服务器与客户端在同一网络中。是否有任何建议?

2 个答案:

答案 0 :(得分:4)

可以配置mac地址,因此它不是标识。 请勿使用网络地址信息进行身份验证或识别。


但是,您可能只是在应用程序中使用mac地址作为信息 - 非安全相关的原因 - 所以我将解释如何获取它(在Linux上)。

首先,客户端的mac地址在诸如REMOTE_ADDRESS之类的php全局变量中不可用(客户端的IP地址)。您需要使用arp命令自行解决它。 arp可以输出系统的ARP表并进行修改。要将IP解析为mac地址,请使用:

arp -a IP

回到PHP。我们需要调用上面的命令,将客户端IP地址传递给它:

$ip  = $_SERVER['REMOTE_ADDRESS'];
// don't miss to use escapeshellarg(). Make it impossible to inject shell code
$mac = shell_exec('arp -a ' . escapeshellarg($ip));

// can be that the IP doesn't exist or the host isn't up (spoofed?)
// check if we found an address
if(empty($mac)) {
    die("No mac address for $ip not found");
}

// having it
echo "mac address for $ip: $mac";

答案 1 :(得分:1)

你可以ask for MAC adress,它可以调整;你也可以要求client ip但它可能每次都会改变。

除非您处于所有控制的局域网中,否则只需管理帐户身份验证!

即便如此,如果你在局域网中,客户端可能会获得一个静态IP,这个目标到目前为止都是由...我认为这可能会出现OSI图层模型的东西