我正在尝试从DNS中检索特定计算机的完全限定域名,但在我的环境中,当我在主机名上使用nslookup时,我会得到它的完全限定域名,但当我在Java中尝试这段代码时,我只能得到主机名:
InetAddress.getByName("Host name or address").getCanonicalHostName()
可能的原因是什么?有没有更好的方法从主机名获取FQDN,而无需凭据或与LDAP服务器的连接?
发布于 2012-03-12 20:48:43
这是系统配置的问题。
来自Javadoc:
如果有安全管理器,此方法首先使用主机名和-1作为参数调用其checkConnect方法,以查看是否允许调用代码知道此IP地址的主机名,即连接到主机。如果不允许该操作,它将返回IP地址的文本表示形式。
getCanonicalHostName
您可以尝试更改系统设置以允许解析FQDN,或者尝试执行ping命令,解析该命令并从中获取主机名。
https://stackoverflow.com/questions/9666629
复制相似问题