Java獲取本機IP地址可以通過以下幾種方式實現(xiàn):
1. 使用InetAddress類:
import java.net.InetAddress;
import java.net.UnknownHostException;
public class GetLocalIP {
public static void main(String[] args) {
try {
InetAddress localHost = InetAddress.getLocalHost();
String ip = localHost.getHostAddress();
System.out.println("本機IP地址:" + ip);
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
上述代碼中,我們使用InetAddress.getLocalHost()方法獲取本地主機的InetAddress對象,然后通過getHostAddress()方法獲取IP地址。
2. 使用NetworkInterface類:
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
public class GetLocalIP {
public static void main(String[] args) {
try {
Enumeration
while (interfaces.hasMoreElements()) {
NetworkInterface networkInterface = interfaces.nextElement();
Enumeration
while (addresses.hasMoreElements()) {
InetAddress address = addresses.nextElement();
if (!address.isLoopbackAddress() && address.isSiteLocalAddress()) {
System.out.println("本機IP地址:" + address.getHostAddress());
}
}
}
} catch (SocketException e) {
e.printStackTrace();
}
}
上述代碼中,我們使用NetworkInterface.getNetworkInterfaces()方法獲取所有網(wǎng)絡(luò)接口的枚舉,然后遍歷每個網(wǎng)絡(luò)接口,再遍歷每個網(wǎng)絡(luò)接口的InetAddress對象,通過判斷是否為非回環(huán)地址和本地地址,獲取本機IP地址。
3. 使用System類:
public class GetLocalIP {
public static void main(String[] args) {
String ip = System.getProperty("java.net.preferIPv4Stack") ? System.getProperty("java.net.preferIPv4Addresses") : System.getProperty("java.net.preferIPv6Addresses");
System.out.println("本機IP地址:" + ip);
}
上述代碼中,我們使用System.getProperty()方法獲取系統(tǒng)屬性,通過判斷java.net.preferIPv4Stack屬性是否為true,來選擇獲取IPv4地址還是IPv6地址。
以上是獲取本機IP地址的幾種常用方法,根據(jù)具體需求選擇適合的方法即可。
千鋒教育擁有多年IT培訓(xùn)服務(wù)經(jīng)驗,開設(shè)Java培訓(xùn)、web前端培訓(xùn)、大數(shù)據(jù)培訓(xùn),python培訓(xùn)、軟件測試培訓(xùn)等課程,采用全程面授高品質(zhì)、高體驗教學(xué)模式,擁有國內(nèi)一體化教學(xué)管理及學(xué)員服務(wù),想獲取更多IT技術(shù)干貨請關(guān)注千鋒教育IT培訓(xùn)機構(gòu)官網(wǎng)。