2013-02-14 139 views
1

我必須查找兩臺服務器是否在同一臺主機上運行。Java查找兩臺服務器是否在同一臺機器上運行

我有兩個主機,但我無法比較它們,因爲一個可以有一個IP地址,另一個可能有主機名。當我挖得更遠時,我發現可以有任意數量的主機名別名。那麼如何才能找出兩個主機別名(哪一個可以是IP)對應相同的主機或不同的主機?

我們可以使用java.net.InetAddress.getLocalHost().getHostName();找到主機名,但我不確定如何找到兩個主機名是否指向同一主機?

回答

0
  • 獲取主機名的IP地址(ES)。 [使用:InetAddress::getByName()]
  • 獲取您擁有的IP的網絡接口。 [用途:NetworkInterface::getByInetAddress()]
  • 找網絡接口(一個或多個)MAC地址(ES)[用途:NetworkInterface::getHardwareAddress()]
  • 如果有兩個服務器生成的MAC地址的重疊,他們在同一臺機器上運行。
0

做一個NSlookup的兩個主機名稱。比較結果。

您可以使用InetAddress.getHostAddress()來執行查找。

請注意,主機名可能位於負載均衡器或其他類型的代理之後,因此沒有可靠的方法來測試它們是否實際上「在相同(物理)機器上運行」。

相關問題