浏览代码

在NetUtil中新增ping功能

断水流大湿兄 6 年之前
父节点
当前提交
0f1ebf8ab7
共有 1 个文件被更改,包括 25 次插入0 次删除
  1. 25 0
      hutool-core/src/main/java/cn/hutool/core/net/NetUtil.java

+ 25 - 0
hutool-core/src/main/java/cn/hutool/core/net/NetUtil.java

@@ -658,6 +658,31 @@ public class NetUtil {
 		return StrUtil.isBlank(checkString) || "unknown".equalsIgnoreCase(checkString);
 	}
 
+    /**
+     * 检测IP地址是否能ping通
+     *
+     * @param ip IP地址
+     * @return 返回是否ping通
+     */
+    public static boolean ping(String ip) {
+        return ping(ip, 200);
+    }
+
+    /**
+     * 检测IP地址是否能ping通
+     *
+     * @param ip      IP地址
+     * @param timeout 检测超时(毫秒)
+     * @return 是否ping通
+     */
+    public static boolean ping(String ip, int timeout) {
+        try {
+            return InetAddress.getByName(ip).isReachable(timeout); // 当返回值是true时,说明host是可用的,false则不可。
+        } catch (Exception ex) {
+            return false;
+        }
+    }
+    
 	// ----------------------------------------------------------------------------------------- Private method start
 	/**
 	 * 指定IP的long是否在指定范围内