我正在寻找基于php的网络获取MAC地址的解决方案。我正在运行appache服务器,服务器与客户端在同一网络中。是否有任何建议?
答案 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图层模型的东西