2016-08-04 12 views
-1
$ip=$_SERVER['REMOTE_ADDR']; 
$mac=shell_exec('arp-a'.'$ip') 
echo $mac; 

iは、マシンのテイクIPアドレスを取得し、私は手動でIPアドレスを提供する場合、それがうまく機能しているシェルコマンドに渡したかったが、IPは、例えば、手動で提供されている場合変数を介してそれがうまくworking.Workingされていません。 :$ mac = shell_exec( 'arp -a 192.168.0.32');IPアドレスを変数に格納してシェルコマンドに渡す方法は?

+0

がどのようにスクリプトを実行しているしてみてください? – Progrock

+0

あなたはどんな結果を期待していますか? – Progrock

+0

あなたはどのプラットフォームにいますか? – Progrock

答えて

2

あなたは、スペース忘れてしまった:だから、あなたが実行しているコマンドは、実際に

arp-a127.0.0.1 

代わりの

arp -a 127.0.0.1 

され、'変数を補間しませんのでご注意

$mac=shell_exec('arp-a'.'$ip') 
        ^-^--here 

を、あなたはリテラルを渡しています$ipシェルターへのチャーター。

$mac = shell_exec('arp -a ' . $ip); 
+0

まだ動作していません – sagar

+0

それから 'shell_exec()'は使わないでください。 [exec()](http://php.net/manual/en/function.exec.php)を使用して、出力と終了の両方のステータスをキャプチャして、何が起きているのかを確認してください。 –

0

あなたの$ ipは引用符で囲まれているので、実際の "$ ip"リテラルをシェルに渡すことになります。

この

$mac=shell_exec('arp-a '.$ip) 
関連する問題