Java代码ping ip工具类
一.工具类
package com.v.photos.utils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.charset.Charset; /** * @Author: 孙创业 * @Date:2019/10/29 18:13 */ public class PingUtil { private static Logger logger = LoggerFactory.getLogger(PingUtil.class); /**ping ipaddress 完整返回信息*/ public static String executeLinuxCmd(String ipAddress, int pingTimes, int timeOut) { Runtime run = Runtime.getRuntime(); String pingCommand; try { String osName = System.getProperty("os.name"); if(osName.contains("Windows")){ pingCommand = "ping " + ipAddress + " -n " + pingTimes + " -w " + timeOut; }else{ pingCommand = "ping " + " -c " + "4" + " -w " + "2 " + ipAddress; } Process process = run.exec(pingCommand); InputStream in = process.getInputStream(); BufferedReader bs = new BufferedReader(new InputStreamReader(in, Charset.forName("GBK"))); StringBuffer out = new StringBuffer(); String content = null; while ((content = bs.readLine()) != null) { out.append(content + "\n"); } in.close(); process.destroy(); return out.toString(); } catch (IOException e) { e.printStackTrace(); } return null; } /**ping ipaddress 完整返回true在线 false离线*/ public static boolean ping(String ipAddress, int pingTimes, int timeOut) { BufferedReader in = null; String pingCommand; Runtime r = Runtime.getRuntime(); String osName = System.getProperty("os.name"); if(osName.contains("Windows")){ pingCommand = "ping " + ipAddress + " -n " + pingTimes + " -w " + timeOut; }else{ pingCommand = "ping " + " -c " + "4" + " -w " + "2 " + ipAddress; } try { Process p = r.exec(pingCommand); if (p == null) { return false; } in = new BufferedReader(new InputStreamReader(p.getInputStream())); int connectedCount = 0; String line; while ((line = in.readLine()) != null) { connectedCount += getCheckResult(line,osName); } return connectedCount >= 2 ? true : false; } catch (Exception ex) { ex.printStackTrace(); //出现异常则返回假 return false; } finally { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } } private static int getCheckResult(String line,String osName) { if(osName.contains("Windows")){ if(line.contains("TTL=")){ return 1; } }else{ if(line.contains("ttl=")){ return 1; } } return 0; } public static void main(String args[]) { //String ping = executeLinuxCmd("10.3.149.27", 2, 1); String ping = executeLinuxCmd("10.4.8.144", 2, 1); System.out.println(ping); //boolean ping1 = ping("10.3.149.27", 2, 1); boolean ping1 = ping("10.4.88.144", 2, 1); System.out.println("盒子IP地址:" + "10.4.8.144" + (ping1 ? "在线" : "下线")); } }