使用Java來取得目前機器的IP位址
在分散式系統中,節點之間經常使用IP位址進行通訊。然而,由於可能存在多個網路介面和不同類型的 IP 位址,取得目前電腦的正確 IP 位址可能具有挑戰性。
決定適當的 IP 位址
預設情況下,InetAddress.getLocalHost() 傳回第一個活動網路介面的 IP 位址。但是,這可能並非在所有情況下都是所需的位址,特別是當需要特定 IP 位址(例如 PPP IP 或 LAN IP)時。
迭代網路介面
一種方法是使用 NetworkInterface.getNetworkInterfaces() 取得機器上的所有網路介面。然後可以使用 getInetAddresses() 檢查每個介面的可用 IP 位址。透過迭代所有可用的 IP 位址,可以識別所需的 IP 類型(例如 PPP、LAN)。
範例程式碼
以下程式碼片段示範如何遍歷網路介面並顯示與每個介面相關的 IP位址介面:
Enumeration e = NetworkInterface.getNetworkInterfaces(); while(e.hasMoreElements()) { NetworkInterface n = (NetworkInterface) e.nextElement(); Enumeration ee = n.getInetAddresses(); while (ee.hasMoreElements()) { InetAddress i = (InetAddress) ee.nextElement(); System.out.println(i.getHostAddress()); } }
區分IP位址
取得IP位址後,可以透過檢查IP位址類型來區分。環回位址(127.0.0.1)、私人(站點本地)位址(192.168.x.x、10.x.x.x、172.16.x.x)、連結本地位址(169.254.x.x)、多重播送位址(224.x.x.x) 位址(255.255) .255.255)可以使用提供的方法進行識別InetAddress API。
選擇正確的 IP 位址
選擇正確 IP 位址的特定標準將根據應用程式的要求而有所不同。一般來說,可以考慮以下步驟:
以上是如何取得 Java 機器的正確 IP 位址?的詳細內容。更多資訊請關注PHP中文網其他相關文章!