Java获取本机IP地址可以通过以下几种方式实现:
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()方法获取所有网络接口的枚举,然后遍历每个网络接口,再遍历每个网络接口的InetAddress对象,通过判断是否为非回环地址和本地地址,获取本机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()方法获取系统属性,通过判断java.net.preferIPv4Stack属性是否为true,来选择获取IPv4地址还是IPv6地址。
以上是获取本机IP地址的几种常用方法,根据具体需求选择适合的方法即可。
千锋教育拥有多年IT培训服务经验,开设Java培训、web前端培训、大数据培训,python培训、软件测试培训等课程,采用全程面授高品质、高体验教学模式,拥有国内一体化教学管理及学员服务,想获取更多IT技术干货请关注千锋教育IT培训机构官网。