使用Java 取得目前機器的IP 位址
挑戰與注意事項
在分散式系統中,確定特定機器的IP 位址是這不是一項簡單的任務。這種複雜性的出現是由於可能存在多個網路介面以及與每個介面關聯的 IP 位址。此外,並非所有 IP 位址都可以從外部存取。
取得所有關聯的 IP 位址
擷取連結到電腦的所有 IP 位址的一種方法是利用 NetworkInterface 類別。此方法會循環存取每個網路介面並提取其關聯的 IP 位址。然而,區分它們是一個挑戰。
區分 IP 位址
要區分 IP 位址,請使用以下標準:
-
環回位址: 範圍 127.0.0.0 - 127.255.255.255
-
私有(站點本地)位址:範圍 192.168.0.0 - 192.168.255.255、10.0.0.0 - 192.168.255.255、10.0.0.0 - 1.55. 172.31.255.255
-
連結本地位址:範圍 169.254.0.0 - 169.254.255.255
- 廣播位址:
- 255.255.255.255
公共 IP 位址:InetAddress API 提供了測試特定 IP 位址類型的方法,有助於識別最合適的位址。
替代方法
取得IP 位址類型的其他方法機器的IP 位址包括:
取得FQDN 和使用DNS 尋找:
取得主機外部公佈的FQDN 並使用InetAddress.getByName() 搜尋其主IP 位址。 -
從設定中擷取首選FQDN 或IP 位址:
指定設定檔中或透過命令列所需的FQDN 或IP 位址-
雖然InetAddress.getLocalHost () 通常會擷取正確的IP 位址,但在複雜的網路環境中可能需要其他方法。
以上是在多重介面網路中如何取得Java機的正確IP位址?的詳細內容。更多資訊請關注PHP中文網其他相關文章!