一尘不染

如何使用Java获取在同一网络(子网)中连接的IP的列表

java

如何使用Java获取在同一网络(子网)中连接的IP的列表


阅读 321

收藏
2020-03-24

共1个答案

一尘不染

当网络上的主机对ICMP软件包做出响应(ping)(> JDK 5)时,该方法应该起作用:

public void checkHosts(String subnet){
   int timeout=1000;
   for (int i=1;i<255;i++){
       String host=subnet + "." + i;
       if (InetAddress.getByName(host).isReachable(timeout)){
           System.out.println(host + " is reachable");
       }
   }
}

像这样调用子网(192.168.0.1-254)的方法:

checkHosts("192.168.0");

没有测试它,但应该像这样工作。显然,这仅检查ip地址的最后一个字节中的254个主机…

校验:

http://download-llnw.oracle.com/javase/6/docs/api/java/net/InetAddress.html#isReachable%28int%29 http://blog.taragana.com/index.php/archive/how做icmp在Java jdk-15和以上/

希望有帮助

2020-03-24