在Java中监视网络适配器的轻量级方法是什么?

在Java中监视网络适配器的轻量级方法是什么?,java,windows,networking,Java,Windows,Networking,我希望能够检测计算机何时连接到网络。Windows下的环境是Java 5。我认为您的选择是要么使用一些JNI库(尽管我对其中一个并不熟悉,而且可能是特定于平台的),要么只是尝试与一些已知的IP建立网络连接(例如谷歌)。这两种解决方案都不优雅,但我不相信在1.5中有一个纯粹的JavaAPI来确定这一点 在Java1.6中,您可以使用Java.net.NetworkInterface.isUp(),但显然这对使用1.5没有帮助。可能签入线程 try { InetAddress inetAddr

我希望能够检测计算机何时连接到网络。Windows下的环境是Java 5。

我认为您的选择是要么使用一些JNI库(尽管我对其中一个并不熟悉,而且可能是特定于平台的),要么只是尝试与一些已知的IP建立网络连接(例如谷歌)。这两种解决方案都不优雅,但我不相信在1.5中有一个纯粹的JavaAPI来确定这一点


在Java1.6中,您可以使用Java.net.NetworkInterface.isUp(),但显然这对使用1.5没有帮助。

可能签入线程

try {
  InetAddress inetAddr = InetAddress.getByName(host);
  setOnline();
} catch (UnknownHostException e) {
  setOffline();
}

是的,这基本上是可行的。尽管您必须关闭DNS缓存或更改查找的主机。根据您的具体要求,这可能会显示“错误”的断开连接,只是b/c的DNS服务器问题。我认为通过IP连接到一个已知的地址可能会稍微好一些。