我想获得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;