我想通过InetAddress.getByName()来区分


名称服务回复,结果为否





名称服务未回复(无法连接到DNS服务器或其他功能)


我认为,在支持方面,两者之间存在巨大差异,即告诉某人在哪里寻找问题。论据问题与基础设施问题之间的区别。

那么如何区分两者呢?

如我所见,在两种情况下都只有UnknownHostException,并且消息文本是相似的。有什么好主意吗?

代码段来阐明:

try {
    InetAddress addr = InetAddress.getByName(hostname);
} catch (UnknownHostException ex) {
    if ( ..... ) {
        System.out.println("Name server replied but did not know \"" + hostname + "\"");
    } else {
        System.out.println("Name server could not be contacted");
    }
}


具体来说:示例中的.....是什么?

最佳答案

作为扩展,您总是可以在try / catch中编写一个附加功能,以ping通给定的IP地址以查看响应(如本(java code to ping an IP address)发布中所定义)。

这样,您可以使用您的函数,然后确切地确认问题发生的原因。但是我可能会建议您提前进行测试(例如,在尝试直接连接之前)。

07-26 04:00