獲取本地IP地址是一項基本的網絡操作,它可以幫助我們判斷網絡連接是否正常,更好地進行網絡編程開發。Java語言提供了多種方式來獲取本地IP地址,本文將從不同的角度對其進行詳細闡述。
一、通過InetAddress類獲取本地IP地址
import java.net.InetAddress;
public class GetLocalIpAddress {
public static void main(String[] args) {
InetAddress addr;
try {
addr = InetAddress.getLocalHost();
System.out.println("Local HostAddress: " + addr.getHostAddress());
} catch (Exception e) {
e.printStackTrace();
}
}
}
通過InetAddress類的getLocalHost方法可以獲取到本機的IP地址。該方法會返回InetAddress對象,通過調用其getHostAddress方法可以得到本機的IP地址信息。
InetAddress類還提供了其他的方法,例如通過getByName方法可以獲取到指定主機的IP地址,或者getHostAddress方法可以將域名轉換為IP地址。
二、通過NetworkInterface類獲取本地IP地址
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.Collections;
import java.util.Enumeration;
import java.util.List;
public class GetLocalIpAddress {
public static void main(String[] args) {
try {
Enumeration interfaces = NetworkInterface.getNetworkInterfaces();
while (interfaces.hasMoreElements()) {
NetworkInterface ni = interfaces.nextElement();
if (!ni.isUp() || ni.isLoopback() || ni.isVirtual()) {
continue;
}
List addresses = Collections.list(ni.getInetAddresses());
for (InetAddress address : addresses) {
if (address.isLinkLocalAddress() || address.isLoopbackAddress() || address.isMulticastAddress()) {
continue;
}
System.out.println(ni.getName() + ": " + address.getHostAddress());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
通過NetworkInterface類可以獲取到本地網絡接口的相關信息,包括IP地址、MAC地址、子網掩碼等。
在該示例中,我們通過NetworkInterface的getNetworkInterfaces方法獲取到所有當前開啟並且不是虛擬接口的網絡接口。然後通過調用NetworkInterface的getInetAddresses方法獲取到該接口關聯的所有IP地址信息。
需要注意的是,獲取到的IP地址信息可能會包含一些不需要的地址類型(例如link-local、loopback或組播地址等),在實際應用中需要對其進行篩選。
三、通過System類獲取本地IP地址
除了以上兩種方式之外,我們還可以通過System類中提供的屬性來獲取本地IP地址信息。
import java.net.InetAddress;
public class GetLocalIpAddress {
public static void main(String[] args) {
try {
InetAddress addr = InetAddress.getLocalHost();
String ip = addr.getHostAddress();
System.out.println("Local HostAddress: " + ip);
} catch (Exception e) {
e.printStackTrace();
}
}
}
該示例中直接使用了System類提供的getLocalHost方法獲取到本機的IP地址信息。
四、總結
本文介紹了Java獲取本地IP地址的幾種方式,通過InetAddress、NetworkInterface和System類的相關方法可以獲得本地IP地址的不同信息,開發者可以根據實際需求選擇最為合適的方式進行使用。
原創文章,作者:ENVL,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/140652.html