一、IP地址的概念
IP地址是用於識別一個在網路中的設備的數字格式地址。在TCP/IP協議中,IP地址是網路層的地址。每個設備在網路中都有唯一的IP地址,用於進行數據的傳遞。
IP地址的格式為四個數字組成,每個數字的取值範圍為0~255,使用”.”作為分隔符。例如: 192.168.0.1。
二、Java獲取本機IP地址的方法
在Java中獲取本機IP地址有多種方法,下面分別介紹這些方法:
1. 使用InetAddress類獲取本機IP地址
import java.net.InetAddress; public class GetLocalIP { public static void main(String[] args) throws Exception { InetAddress address = InetAddress.getLocalHost(); System.out.println("本機IP地址:" + address.getHostAddress()); } }
使用InetAddress類的getLocalHost()方法可以獲取本機IP地址,調用getHostAddress()方法可以獲取IP地址的字元串格式。
2. 使用NetworkInterface類獲取本機IP地址
import java.net.InetAddress; import java.net.NetworkInterface; import java.util.Enumeration; public class GetLocalIP { public static void main(String[] args) throws Exception { Enumeration interfaces = NetworkInterface.getNetworkInterfaces(); while (interfaces.hasMoreElements()) { NetworkInterface ni = interfaces.nextElement(); Enumeration addresses = ni.getInetAddresses(); while (addresses.hasMoreElements()) { InetAddress address = addresses.nextElement(); if (!address.isLinkLocalAddress() && !address.isLoopbackAddress() && address.isSiteLocalAddress()) { System.out.println("本機IP地址:" + address.getHostAddress()); } } } } }
使用NetworkInterface類可以獲取本機的所有網路介面,調用getInetAddresses()方法可以獲取當前網路介面的所有IP地址,並通過條件過濾獲取本地網路的IPv4地址。
3. 使用Socket類獲取本機IP地址
import java.net.InetAddress; import java.net.Socket; public class GetLocalIP { public static void main(String[] args) throws Exception { Socket socket = new Socket("www.baidu.com", 80); InetAddress address = socket.getLocalAddress(); System.out.println("本機IP地址:" + address.getHostAddress()); socket.close(); } }
使用Socket類連接一個外部網路地址,通過getLocalAddress()方法獲取本機IP地址。需要注意的是,該方法會與對應服務建立連接,由於網路連接失敗等因素都可能導致該方法的阻塞。
三、總結
以上三種方法可以獲取本機IP地址,每種方法都有其適用場景。開發者需要根據實際情況選擇合適的方法來獲取本機IP地址。
最後,在網路開發中,IP地址的獲取只是網路編程的基礎,具體的應用還需要結合具體的業務場景進行設計和實現。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/152897.html