0

我想在 linux 上使用 php 获取我网络的所有路由器列表。我已经尝试过 php exec 和 system 函数,但它只在输出中提供一个路由器。

如何获取路由器的完整列表?

$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

使用 passthru 检索所有输出。

您必须了解这里需要考虑不同的输出流:

  • iwlist可能会在上生成文本(由于其他接口不支持无线)
  • grep只会通过管道从标准输出接收
  • passthru将从and接收iwlistgrep

您可以重定向输出,以便仅获得已被 grep 处理的成功输出。整个事情就变成了:

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

于 2012-07-31T07:18:04.020 回答
0

您可以使用exec()而不是system. for的第二个参数exec()是一个(可选的)数组。您的命令返回的每一行输出都将在该数组中。

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