服务器端通过arp协议获取客户端mac地址

来源:互联网 发布:淘宝怎么快速发布宝贝 编辑:程序博客网 时间:2024/05/16 01:41

   通过arp命令获取arp cache表,本程序通过遍历获取与服务器连接主机的mac地址

function returnMacAddress()
{
$location = `which arp`;
$location = rtrim($location);

$arpTable = `$location -n`;

$arpSplitted = split("/n",$arpTable);

$remoteIp = $GLOBALS['REMOTE_ADDR'];
$remoteIp = str_replace(".", "//.", $remoteIp);

foreach ($arpSplitted as $value) {

$valueSplitted = split(" ",$value);

foreach ($valueSplitted as $spLine) {
if ( preg_match("/$remoteIp/",$spLine) ) {
$ipFound = true;
}


if ($ipFound) {

reset($valueSplitted);

foreach ($valueSplitted as $spLine) {
if (
preg_match("/[0-9a-f][0-9a-f][:-][0-9a-f][0-9a-f][:-][0-9a-f][0-9a-f][:-][0-9a-f][0-9a-f][:-]".
"[0-9a-f][0-9a-f][:-][0-9a-f][0-9a-f]/i",$spLine)) {
return $spLine;
}
}
}

$ipFound = false;
}
}

return false;
}