我想在linux上使用php获取我网络的所有路由器列表。 我已经尝试过php exec和系统功能,但它只在输出中提供一个路由器。
如何获取路由器的完整列表?
$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;
答案 0 :(得分:1)
使用passthru检索所有输出。
您必须了解此处需要考虑不同的输出流:
iwlist
可能会在stdout和stderr上生成文字(由于其他不支持无线的接口)grep
只会通过stdout passthru
将从iwlist
和grep
收到stdout和stderr。您可以重定向输出,以便只获得已经grep的成功输出。然后整个事情变成:
echo passthru('iwlist scan 2>/dev/null | grep ESSID');
答案 1 :(得分:0)
您可以使用exec()
代替system
。 exec()
的第二个参数是(可选)数组。命令返回的每一行输出都将在该数组中。
$output = array();
exec('iwlist scan', $output, $retval);
print_r($output);