如何获取使用 Java 连接到同一子网的设备的 IP 地址列表?
最佳答案
当您网络上的主机响应 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-to-do-icmp-ping-in-java-jdk-15-and-above/
希望有所帮助
关于java - 如何使用 Java 获取连接在同一网络(子网)中的 IP 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3345857/