其实下面的编码工作正常,如果我直接提供shell_exec()
获取网络客户端的MAC地址,使用PHP
$mac = shell_exec('arp -a 192.168.0.107');
内部IP地址。如果,我从他的系统,获取客户端的IP语法问题并存储在一个变量中,并调用相同的,如下所示,
$mac = shell_exec('arp -a' . escapeshellarg($ip));
输出不生成。
下面是完整的代码:
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$mac = shell_exec('arp -a'. escapeshellarg($ip));
//Working fine when sample client IP is provided...
//$mac = shell_exec('arp -a 192.168.0.107');
$findme = "Physical";
$pos = strpos($mac, $findme);
$macp = substr($mac,($pos+42),26);
if(empty($mac))
{
die("No mac address for $ip not found");
}
// having it
echo "mac address for $ip: $macp";
?>
请指教,为什么escapeshellarg($ip)
不会在shell_exec()
工作。
你得到答案了吗?如果没有,我可以帮助你。 – ihue