我试图使用Java代码获取我域中的Windows机器的FQDN。在Java中获取FQDN
我试过InetAddress.getByName("machine-1").getCanonicalHostName()
但只返回机器名。
另一方面,如果我ping“machine-1”,我会得到完整的域名。
你知道该怎么做吗?
我试图使用Java代码获取我域中的Windows机器的FQDN。在Java中获取FQDN
我试过InetAddress.getByName("machine-1").getCanonicalHostName()
但只返回机器名。
另一方面,如果我ping“machine-1”,我会得到完整的域名。
你知道该怎么做吗?
简单的答案是,你的建议,如果可以的话。
该API没有声明它会返回FQDN(如果可以的话)。这取决于系统配置。
您发布的代码在Windows域计算机上对我有用,但我不能说为什么它不适合您。
如果您无法更改机器/域配置,以便java可以检测到它,并且您的代码使用该FQDN至关重要,那么您可以诉诸于执行来自java的ping命令并解析结果至少作为一种临时措施。
超晚回复,也许会帮助下一个旅行者。
InetAddress.getLocalHost().getCanonicalHostName()
这将返回FQDN - 我的JVM版本是1.8.0_144
我发现这个JDK错误报告http://bugs.java.com/view_bug.do?bug_id=7166687这或许可以解释为什么有这么多的困惑。
InetAddress.getLocalHost().getHostName()
现在只返回主机名。
我想知道,如果您在Windows的etc/hosts中设置条目,您的代码是否工作? – Cratylus