shell_exec("traceroute IPaddress)返回traceroute to IPaddress (IPaddress), 30 hops max, 40 byte packets
如何检索实际的跃点列表,以便知道问题发生的位置?
发布于 2012-12-04 20:07:23
这些消息应该写入stderr,而不是常规的stdout,所以我不太确定为什么您会看到它们出现在输出中。
我推荐使用exec()而不是shell_exec(),因为它同时捕获了进程的输出和返回码:
exec('traceroute example.com 2>&1', $out, $code);
if ($code) {
die("An error occurred while trying to traceroute: " . join("\n", $out);
}
print_r($out);为了稍微提高命令的速度,您可以在运行traceroute时使用DNS选项,以避免对中间跃点执行-n查找。
请注意,运行traceroute可能需要一段时间;如果您在命令行上运行它,您有时会看到其中包含* * *的行,这可能需要很长时间!
发布于 2012-12-04 19:34:24
使用exec并查看其第二个参数:
string exec ( string $command [, array &$output [, int &$return_var ]] )示例:
<?php
exec('traceroute test.com -m 2', $output);
var_dump($output); https://stackoverflow.com/questions/13701842
复制相似问题