首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java中,除了ping命令之外,还可以使用IP地址计算往返时间

问在Java中,除了ping命令之外,还可以使用IP地址计算往返时间
EN

Stack Overflow用户
提问于 2011-03-01 03:22:59
回答 2查看 4.2K关注 0票数 0

我用以下代码在unix系统上的Java中实现了一种获取RTT的方法:

代码语言:javascript
复制
String command[] = {"ping", "-c4", theIPAddress};
ProcessBuilder pb = new ProcessBuilder(command);
pb.redirectErrorStream(true);
Process p = pb.start();
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while((line = in.readLine()) != null)
   //the terminal output with the ping results...
etc...

这很好用,我可以用输出计算RTT (延迟)(以毫秒为单位)。但是,如果主机阻止了ICMP,ping将超时。(即使在Mac OS X终端或Windows CMD中也是如此)

现在我想找到另一种方法来获得IP地址的RTT/延迟。(我不想在主机端安装软件。)如果您不能为我提供Java示例,请给我其他输入。我可以在多种语言之间进行翻译,而且我真的可以使用Google。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-01 03:45:21

Tracert是treaceroute的缩写(我最后检查的是windows命令),它也使用ICMP。

在linux上,等同的命令是tracepath,在类Unix操作系统上,UDP实用程序默认使用用户数据报协议(UDP)数据报,目的端口号从33434到33534。traceroute实用程序通常有一个option来指定使用Windows 回应请求(类型8),这与 tracert实用程序所使用的一样。

也有使用TCP数据包的traceroute实现,例如tcptraceroute或layer four traceroute。

来源:traceroute

票数 1
EN

Stack Overflow用户

发布于 2011-03-01 03:30:03

如果主机已阻止ICMP,则它不希望您这样做。试试tracert吧?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5146547

复制
相关文章

相似问题

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