我必須查找兩臺服務器是否在同一臺主機上運行。Java查找兩臺服務器是否在同一臺機器上運行
我有兩個主機,但我無法比較它們,因爲一個可以有一個IP地址,另一個可能有主機名。當我挖得更遠時,我發現可以有任意數量的主機名別名。那麼如何才能找出兩個主機別名(哪一個可以是IP)對應相同的主機或不同的主機?
我們可以使用java.net.InetAddress.getLocalHost().getHostName();
找到主機名,但我不確定如何找到兩個主機名是否指向同一主機?
我必須查找兩臺服務器是否在同一臺主機上運行。Java查找兩臺服務器是否在同一臺機器上運行
我有兩個主機,但我無法比較它們,因爲一個可以有一個IP地址,另一個可能有主機名。當我挖得更遠時,我發現可以有任意數量的主機名別名。那麼如何才能找出兩個主機別名(哪一個可以是IP)對應相同的主機或不同的主機?
我們可以使用java.net.InetAddress.getLocalHost().getHostName();
找到主機名,但我不確定如何找到兩個主機名是否指向同一主機?
您可以將所有內容都轉換爲IP地址,並且由於我們知道這些內容是唯一的,因此可以將這些內容進行比較。
看看這篇文章。
http://www.java2s.com/Code/Java/Network-Protocol/ConvertahostnametotheequivalentIPaddress.htm
InetAddress::getByName()
]NetworkInterface::getByInetAddress()
]NetworkInterface::getHardwareAddress()
]做一個NSlookup的兩個主機名稱。比較結果。
您可以使用InetAddress.getHostAddress()來執行查找。
請注意,主機名可能位於負載均衡器或其他類型的代理之後,因此沒有可靠的方法來測試它們是否實際上「在相同(物理)機器上運行」。