gpt4 book ai didi

java - Java 中除了 ping 命令之外用 IP 地址计算往返时间的方法

转载 作者:行者123 更新时间:2023-12-02 08:22:53 24 4
gpt4 key购买 nike

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

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。

最佳答案

Tracert 是treaceroute 的缩写(也是我上次检查的Windows 命令),它只是路径ping - 它也使用ICMP。

在 Linux 上,等效命令是 tracepath,在类 Unix 操作系统上,traceroute 实用程序默认使用用户数据报协议(protocol) (UDP )目标端口号从 33434 到 33534 的数据报。traceroute 实用程序通常有一个选项来指定使用 ICMP 回显请求(类型 8),如 Windows 所使用的tracert 实用程序。

还有使用 TCP 数据包的跟踪路由实现,例如tcptraceroute第四层跟踪路由

来源:traceroute

关于java - Java 中除了 ping 命令之外用 IP 地址计算往返时间的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5146547/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com