Java获取本机IP地址的三种方法总结
在Java中,有多种方法可以获取本机的IP地址。下面将介绍三种常用的方法,并提供示例说明。
方法一:使用InetAddress类
import java.net.InetAddress;
import java.net.UnknownHostException;
public class GetIPAddress {
public static void main(String[] args) {
try {
InetAddress localhost = InetAddress.getLocalHost();
System.out.println(\"方法一:使用InetAddress类\");
System.out.println(\"IP地址: \" + localhost.getHostAddress());
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
该方法使用InetAddress.getLocalHost()
方法获取本机的InetAddress对象,然后使用getHostAddress()
方法获取IP地址。
方法二:使用NetworkInterface类
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
public class GetIPAddress {
public static void main(String[] args) {
try {
Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
System.out.println(\"方法二:使用NetworkInterface类\");
while (interfaces.hasMoreElements()) {
NetworkInterface networkInterface = interfaces.nextElement();
Enumeration<InetAddress> addresses = networkInterface.getInetAddresses();
while (addresses.hasMoreElements()) {
InetAddress address = addresses.nextElement();
if (!address.isLoopbackAddress() && address.getHostAddress().indexOf(':') == -1) {
System.out.println(\"IP地址: \" + address.getHostAddress());
}
}
}
} catch (SocketException e) {
e.printStackTrace();
}
}
}
该方法使用NetworkInterface.getNetworkInterfaces()
方法获取所有网络接口的枚举,然后遍历每个网络接口,使用getInetAddresses()
方法获取每个接口的InetAddress对象,再通过判断是否为回环地址和IPv6地址来获取IP地址。
方法三:使用System类
public class GetIPAddress {
public static void main(String[] args) {
System.out.println(\"方法三:使用System类\");
String ip = System.getProperty(\"java.net.preferIPv4Stack\") != null ? System.getProperty(\"java.net.preferIPv4Stack\") : \"\";
if (ip.equals(\"true\")) {
ip = System.getProperty(\"java.net.preferIPv4Addresses\");
} else {
ip = System.getProperty(\"java.net.preferIPv6Addresses\");
}
System.out.println(\"IP地址: \" + ip);
}
}
该方法使用System.getProperty()
方法获取系统属性,通过判断java.net.preferIPv4Stack
属性是否存在来确定使用IPv4还是IPv6地址。
以上是获取本机IP地址的三种常用方法的详细攻略。你可以根据自己的需求选择适合的方法来获取IP地址。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java获取本机IP地址的三种方法总结 - Python技术站