我想开发一个局域网搜索工具。为此,我需要所有连接的主机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");
}
}
答案 0 :(得分:1)
您的代码似乎没问题,请尝试增加超时。
4s-5s超时会很好,至少应该显示你自己的IP可达。
此外,isReachable
的文档说明了:
尽最大努力实现尝试联系主机, 但防火墙和服务器配置可能会阻止导致的请求 无法达到的状态。
因此,如果其他情况失败,请确保没有防火墙问题。
祝你好运