$ip=$_SERVER['REMOTE_ADDR'];
$mac=shell_exec('arp-a'.'$ip')
echo $mac;
我想取一个机器的IP地址,并将它传递给shell命令,它工作的很好,如果我手动提供ipaddress,但通过变量,它不工作。如果ip手动提供,例如。 :$ mac = shell_exec('arp -a 192.168.0.32');如何将IP地址存储到变量并将其传递给shell命令?
$ip=$_SERVER['REMOTE_ADDR'];
$mac=shell_exec('arp-a'.'$ip')
echo $mac;
我想取一个机器的IP地址,并将它传递给shell命令,它工作的很好,如果我手动提供ipaddress,但通过变量,它不工作。如果ip手动提供,例如。 :$ mac = shell_exec('arp -a 192.168.0.32');如何将IP地址存储到变量并将其传递给shell命令?
你忘了空间:
$mac=shell_exec('arp-a'.'$ip')
^-^--here
所以你是在执行命令实际上是
arp-a127.0.0.1
,而不是
arp -a 127.0.0.1
并注意'
不进行内插变量,所以你传递一个字面$
,i
,p
字符到外壳。你根本不需要引号:
$mac = shell_exec('arp -a ' . $ip);
它仍然不工作 – sagar
然后不要使用'shell_exec()'。使用[exec()](http://php.net/manual/en/function.exec.php)并捕获输出和退出状态以查看发生了什么。 –
你的$ ip是在引号中,所以你传递一个实际的“$ ip”文本到shell。
试试这个
$mac=shell_exec('arp-a '.$ip)
你是如何执行的脚本? – Progrock
你期望什么结果? – Progrock
你在哪个平台上? – Progrock