“is not reachable”和“unknown host”的区别是什么?

6

我有一小段Java代码,用于测试一些不可到达的主机。
重要部分如下:

for (String host : hosts) {
    try {
        if (!InetAddress.getByName(host).isReachable(5000)) {
            System.err.println(host + " is not reachable!");
        }
    } catch (UnknownHostException e) {
        System.err.println(host + " is unknown");
    } catch (IOException e) {
        System.err.println(host + "throws IOException!");
    }
}

hosts是一个String[]数组,其中包含要测试的URL。当我运行它时,有些URL会显示“...不可达!”而有时则会显示“...未知”。

但这两者之间有什么区别?
不可达 -> 5秒后ping无响应
未知 -> 找不到要ping的主机

这只是我的想法,我在谷歌上找不到任何确认或改进。

2个回答

11

未知主机意味着它无法解析DNS条目,因此不知道要联系哪个IP地址。

无法访问表示它有一个IP地址并尝试联系它,但失败了(可能是由于超时或接收到了无法到达目的地消息)。


例如:当我ping www.aöfhdfsadkjfen.com时,会出现“未知主机”,而当我ping一个存在但目前不可用的站点时,则会出现“无法访问”。 - Michael Schmidt
@dTDesign 正确。直到有些垃圾邮件发送者注意到该域名并注册它。 - chrylis -cautiouslyoptimistic-

3

未知主机 - 没有足够的信息来联系主机 / 不知道要联系哪个主机
无法访问 - 有足够的信息来联系主机,但由于某些原因(网络错误、超时-主机未能及时响应、权限问题等)而无法进行联系。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接