我想获得ping执行时间并在ping主机后生成字符串

我想获得ping执行时间并在ping主机后生成字符串。 我该怎么做?

long currentTime = System.currentTimeMillis(); boolean isPinged = InetAddress.getByName(servername).isReachable(2000); // 2 seconds currentTime = System.currentTimeMillis() - currentTime; if(isPinged) { System.out.println("pinged successfully in "+ currentTime+ "millisecond"); } else { System.out.println("PIng failed."); } 

但这只会在Windows系统中使用ICMP ping。

你查了这个http://docs.oracle.com/javase/1.4.2/docs/guide/nio/example/Ping.java

http://www.java2s.com/Code/JavaAPI/java.net/InetAddressisReachableinttimeout.htm

 long start = System.currentTimeMillis(); long ping; String[] command = { "cmd.exe", "/C", "ping 192.168.1.101" }; commandProcess = Runtime.getRuntime().exec(command); BufferedReader buffy = new BufferedReader(new InputStreamReader(commandProcess.getInputStream())); String readline; while((readline = buffy.readLine())!=null){ System.out.println(readline); if(readline.contains("reply")){ long ping = System.currentTimeMillis(); System.out.println("Pinged in:"+ ping); } } long end = System.currentTimeMillis(); String done = "Completed in times:" +start + ping +end;