首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用php获取traceroute跃点列表

使用php获取traceroute跃点列表
EN

Stack Overflow用户
提问于 2012-12-04 19:27:18
回答 2查看 5.8K关注 0票数 0

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

如何检索实际的跃点列表,以便知道问题发生的位置?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-04 20:07:23

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

我推荐使用exec()而不是shell_exec(),因为它同时捕获了进程的输出和返回码:

代码语言:javascript
复制
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可能需要一段时间;如果您在命令行上运行它,您有时会看到其中包含* * *的行,这可能需要很长时间!

票数 1
EN

Stack Overflow用户

发布于 2012-12-04 19:34:24

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

代码语言:javascript
复制
string exec ( string $command [, array &$output [, int &$return_var ]] )

示例:

代码语言:javascript
复制
<?php

exec('traceroute test.com -m 2', $output);
var_dump($output); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13701842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档