我的主要目的是解析通过 PHP 执行的 traceroute 命令返回的数据
$output = shell_exec("traceroute www.xxx.com");
echo $output;
返回的输出是这样的
追踪路线到
www.x.com [173.xx.xx.xx] over a maximum of 30
hops: 1 1 ms <1 ms <1 ms 192.168.1.1 2 10 ms 10 ms 10 ms 117.xx.xx.xx
3 11 ms 9 ms 9 ms 218.xx.xx.xx 4 10 ms 11 ms 10 ms 218.xx.xx.xx 5 216 ms 220
ms 229 ms 59.xx.xx.xx.static.xx.xx.xx [59.xx.xx.xx] 6 203 ms 203 ms 219 ms
121xx.xx.xx
7 328 ms 371 ms 325 ms 72.xx.xx.xx 8 301 ms 306 ms 313 ms 72.xx.xx.xx 9
249 ms 251 ms249 ms 72.xx.xx.xx 10 256 ms 254 ms 255 ms sin04s02xx.xx.xx
[173.xx.xx.xx] Trace complete.
我想每次解析或获取输出,
我试过这个
traceroute www.google.com 2>/dev/null | awk 'NR==1
{ print $5;
exit;
}
这给了我我认为的最大跳数。如果有类似的命令来获取单个输出,例如
1 1 ms <1 ms <1 ms 192.168.1.1
2 10 ms 10 ms 10 ms 117.xx.xx.xx
3 11 ms 9 ms 9 ms 218.xx.xx.xx
也许我可以将它包含在一个循环中。