我試圖使用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