如何找到一个主机ping时间



我试图找到ping时间(使用Windows 8, Java 6)。我使用System.currentTimeMillis()方法来查找ping时间,但它返回一个奇怪的值。例如,当我ping一个本地主机它返回1000毫秒

请帮我创建一个查找主机ping时间的例程。

public int pingHost(String host){
    Long start = System.currentTimeMillis();
    if (!InetAddress.getByName(host).isReachable(2000)) return -1;
    return (int) (System.currentTimeMillis()-start);
}

注:这个问题不是如何从Windows做一个真正的Java ping的副本?对我来说,仅仅检查主机是否在线是不够的。我需要测量连接速度并找到"ping时间"值。

代码看起来是正确的,并且在我的操作系统(Ubuntu Linux内核3.0.0-16)下为本地主机打印了4毫秒。然而,isReachable已知在Windows平台上存在问题。如果您需要ping正在监听已知端口的服务器,则重写为尝试打开TCP/IP连接。

最新更新