我试图知道是否可以使用下面的代码访问IP地址。但每次我都“无法到达”,即使机器在运行。我试过使用几个活着的I,但我总是“联系不到”。请帮帮忙。
public class CheckIP {
public static void main(String args[]) throws UnknownHostException, IOException{
String ip = "78.46.84.171";
if(InetAddress.getByName(ip).isReachable(100)){
System.out.println("Reachable.");
}
else{
System.out.println("Not Reachable.");
}
}
}发布于 2015-06-03 05:58:52
你能从命令行打开机器吗?例如ping 78.46.84.171
根据oracle文档
测试是否可以访问该地址。实现尽最大努力试图到达主机,但是防火墙和服务器配置可能会阻止请求,从而导致无法访问的状态,而一些特定的端口可能是可访问的。如果可以获得特权,典型的实现将使用ICMP回送请求,否则它将尝试在目标主机的端口7 ( ECHO )上建立TCP连接。 超时值(以毫秒为单位)指示尝试应花费的最大时间。如果操作在得到答案之前超时,则认为无法到达主机。负值将导致抛出IllegalArgumentException。
对占有性错误进行总结:
100 ms的超时是短暂的(尝试增加到,例如1000)isReachable(int)实现尝试了TCP,但失败了。(尝试windows机器,或以root用户身份或通过sudo执行程序)https://stackoverflow.com/questions/30611761
复制相似问题