我想通过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)发布中所定义)。
这样,您可以使用您的函数,然后确切地确认问题发生的原因。但是我可能会建议您提前进行测试(例如,在尝试直接连接之前)。