使用 Hutool 检查 IP 是否可 Ping 通
Hutool工具包提供了NetUtil.ping方法,可快速检测IP或域名是否可Ping通。支持三种方式:1)基本检测返回布尔值;2)自定义超时时间;3)获取详细耗时(毫秒),-1表示失败。该方法跨平台支持Windows/Linux,但需确保目标允许ICMP协议且本地网络正常。默认超时2秒,可灵活调整检测参数,适用于内网外网连通性测试。
·
使用 Hutool 检查 IP 是否可 Ping 通
Hutool 提供了 NetUtil.ping 方法,可以快速检查目标 IP 或域名是否能够 Ping 通。
方法 1:简单 Ping 测试
import cn.hutool.core.net.NetUtil;
public class PingExample {
public static void main(String[] args) {
String ip = "192.168.1.1"; // 替换为目标 IP 或域名
boolean reachable = NetUtil.ping(ip);
System.out.println(ip + " 是否可达: " + reachable);
}
}
NetUtil.ping(ip)返回boolean值,true表示可 Ping 通,false表示不可达。- 默认超时时间为 2000 毫秒(2 秒)。
方法 2:自定义超时时间
import cn.hutool.core.net.NetUtil;
public class PingWithTimeout {
public static void main(String[] args) {
String ip = "example.com";
int timeout = 5000; // 自定义超时时间(毫秒)
boolean reachable = NetUtil.ping(ip, timeout);
System.out.println(ip + " 是否可达: " + reachable);
}
}
- 通过
NetUtil.ping(ip, timeout)指定超时时间(单位:毫秒)。
方法 3:获取详细 Ping 结果
如果需要获取 Ping 的详细结果(如耗时),可以使用 NetUtil.ping(String, int) 的返回值:
import cn.hutool.core.net.NetUtil;
public class DetailedPing {
public static void main(String[] args) {
String ip = "8.8.8.8";
int timeout = 3000;
long elapsed = NetUtil.ping(ip, timeout); // 返回耗时(毫秒),-1 表示超时或失败
if (elapsed >= 0) {
System.out.println(ip + " 可达,耗时: " + elapsed + "ms");
} else {
System.out.println(ip + " 不可达或超时");
}
}
}
- 返回值
elapsed为实际 Ping 耗时(毫秒),若返回-1表示 Ping 失败或超时。
注意事项
- 需要确保目标 IP 或域名允许 ICMP 协议(部分服务器可能禁 Ping)。
- 在 Windows 和 Linux 系统下均可使用,Hutool 会自动调用系统命令实现。
- 如果测试外网 IP,需确保本地网络环境正常。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)