主机名与规范主机名

任何人都可以解释一下主机名和规范主机名之间的区别吗?

我目前正在使用InetAddress类来获取使用IP地址的主机名。我遇到了这2个API。所以我只是想知道,我应该选择哪一个?


答案 1

两者之间有一些区别:

  • getCanonicalHostName() 将尝试解析 FQDN。因此,你会得到 foo.mycompany.comgetHostName()可能只返回foo

  • getCanonicalHostName()将始终执行反向 DNS 查找,而如果您在构造函数中提供了主机名,则将返回存储的主机名。getHostName()InetAddress

我怀疑如果您打算将IP地址映射到主机名,您将想要使用。getCanonicalHostName()


答案 2