Java 5 - 检查网络接口是否已启动并正在运行



Java 6 提供了 isUp() 方法来检查网络接口是否已启动并正在运行。

http://docs.oracle.com/javase/6/docs/api/java/net/NetworkInterface.html#isUp()

有什么方法可以在Java 5中检查相同的内容吗?

如果您

不介意使用外部库,请检查 Sigar

您可以获取网络接口状态,其中包括接收的字节数或发送的字节数等统计信息。

唯一的回退是带有 java 绑定的 C 库,因此在运行时需要体系结构的特定版本

查看是否有任何资源可用,从NIC到数据库,再到世界另一端或月球的Web服务器,最好的方法是尝试使用它。任何其他技术都容易出现计时问题,即测试时它已启动,使用时已关闭,或者相反。当你尝试使用它时,无论如何你都必须处理失败的情况,因为它们通常是检查的异常:为什么要写两次相同的代码?

NetworkInterface有一个方法getInetAddresses(),提供InetAddress -es的枚举。假设每个适配器都支持 IPv4,您将在其中找到一个Inet4Address。如果接口关闭,它将通过方法toString()提供"0.0.0.0"作为地址。如果适配器已启动但未链接(未分配动态地址),它将具有模式"169.x.x.x"的地址。

最新更新