根據ip判斷,網址是否ping通
阿新 • • 發佈:2018-12-10
package test.ping; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; public class testPing { public static void main(String[] args) { // String ip = "http://www.baidu.com";//網路狀態:網路ping不通 // String ip = "---輸入本機ip---"; //使用本機的ip。 能ping通 String ip = "119.75.217.109";//使用百度的ip,能ping通 if (isConnect(ip)) { System.out.println("網路狀態:" + "網路能ping通"); } else { System.out.println("網路狀態:" + "網路ping不通"); } } /** * 根據ip判斷當前ip是否能夠ping通 * * @param ip * @return */ public static boolean isConnect(String ip) { boolean bool = false; Runtime runtime = Runtime.getRuntime(); try { Process process = runtime.exec("ping " + ip); InputStream is = process.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String line = null; StringBuffer sb = new StringBuffer(); while ((line = br.readLine()) != null) { sb.append(line); // 優化速度 if (line.indexOf("請求超時") >= 0) { // System.out.println(ip + "網路斷開,時間 " + new Date()); return false; } } is.close(); isr.close(); br.close(); if (null != sb && !sb.toString().equals("")) { if (sb.toString().indexOf("TTL") > 0) { // 網路暢通 // System.out.println(ip + "網路正常 ,時間" + new Date()); bool = true; } else { // 網路不暢通 // System.out.println(ip + "網路斷開,時間 " + new Date()); bool = false; } } } catch (Exception e) { e.printStackTrace(); } return bool; } }