获取java中连接到LAN的所有主机的IP地址

时间:2014-04-03 12:41:23

标签: java network-programming lan

我想开发一个局域网搜索工具。为此,我需要所有连接的主机IP。为此,我正在使用它,但它对我不起作用。它使所有结果都无法访问,甚至是我自己的IP。

请帮我解决这个问题

public static void checkHosts(String subnet) throws UnknownHostException, IOException{
  int timeout=1000;
   for (int i=1;i<254;i++){
       System.out.println(i);
   String host=subnet + "." + i;
   if (InetAddress.getByName(host).isReachable(timeout)){
       System.out.println(host + " is reachable");
   }
   else{
       System.out.println(host + " is not reachable");
   }
}

1 个答案:

答案 0 :(得分:1)

您的代码似乎没问题,请尝试增加超时

4s-5s超时会很好,至少应该显示你自己的IP可达。


此外,isReachable的文档说明了:

  

尽最大努力实现尝试联系主机,   但防火墙和服务器配置可能会阻止导致的请求   无法达到的状态。

因此,如果其他情况失败,请确保没有防火墙问题。

祝你好运