通过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;
}