2016-08-04 82 views
-1
$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命令?

+0

你是如何执行的脚本? – Progrock

+0

你期望什么结果? – Progrock

+0

你在哪个平台上? – Progrock

回答

2

你忘了空间:

$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); 
+0

它仍然不工作 – sagar

+0

然后不要使用'shell_exec()'。使用[exec()](http://php.net/manual/en/function.exec.php)并捕获输出和退出状态以查看发生了什么。 –

0

你的$ ip是在引号中,所以你传递一个实际的“$ ip”文本到shell。

试试这个

$mac=shell_exec('arp-a '.$ip) 
相关问题