0

Linux で php を使用して、ネットワークのすべてのルーター リストを取得したいと考えています。私はphp execとシステム関数を試しましたが、出力にはルーターが1つしかありません。

ルーターの全リストを取得するには?

$last_line = system('iwlist scan', $retval);
echo '
</pre>
<hr />Last line of the output: ' . $last_line . '
<hr />Return value: ' . $retval;

$last_line = system('iwlist scan | grep ESSID', $retval);

echo '

<hr />Last line of the output: ' . $last_line . '
<hr />Return value: ' . $retval;
4

2 に答える 2

1

パススルーを使用して、すべての出力を取得します。

ここで考慮すべきさまざまな出力ストリームがあることを理解する必要があります。

  • iwlistおそらくにテキストが生成されます(ワイヤレスをサポートしていない他のインターフェイスのため)
  • grepからのパイプを介してのみ出力を受け取ります
  • passthruとからの両方を受け取ります。iwlistgrep

出力をリダイレクトして、grep された成功した出力のみを取得できます。全体は次のようになります。

echo passthru('iwlist scan 2>/dev/null | grep ESSID');

于 2012-07-31T07:18:04.020 に答える
0

exec()の代わりに使用できますsystem。の2番目のパラメーターexec()は、(オプションの)配列です。コマンドが返す出力の各行は、その配列に含まれます。

$output = array();
exec('iwlist scan', $output, $retval);
print_r($output);
于 2012-07-31T07:13:22.480 に答える