获取带有php的traceroute跃点列表

时间:2012-12-04 11:27:18

标签: php traceroute

shell_exec("traceroute IPaddress)返回traceroute to IPaddress (IPaddress), 30 hops max, 40 byte packets

如何检索实际的跃点列表,以便我可以确定问题出在哪里?

2 个答案:

答案 0 :(得分:1)

这些消息应该写入stderr而不是常规stdout,所以我不太清楚为什么你会看到它们出现在输出中。

我建议使用shell_exec()而不是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);

为了加快命令速度,您可以在运行-n时使用traceroute选项,以避免对中间跃点进行DNS查找。

请注意,运行traceroute可能需要一段时间;如果你在命令行上运行它,你有时会看到包含* * *的行,这可能需要很长时间!

答案 1 :(得分:0)

使用exec并查看其第二个参数:

string exec ( string $command [, array &$output [, int &$return_var ]] )

示例:

<?php

exec('traceroute test.com -m 2', $output);
var_dump($output);