java如何查询ip
查询本机IP地址
使用InetAddress类可以获取本机的IP地址。以下是一个简单的示例代码:

import java.net.InetAddress;
import java.net.UnknownHostException;
public class GetLocalIP {
public static void main(String[] args) {
try {
InetAddress localHost = InetAddress.getLocalHost();
System.out.println("Local IP Address: " + localHost.getHostAddress());
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
查询公网IP地址
查询公网IP需要访问外部服务。可以使用HTTP请求获取公网IP:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
public class GetPublicIP {
public static void main(String[] args) {
try {
URL url = new URL("https://api.ipify.org");
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
String publicIP = reader.readLine();
System.out.println("Public IP Address: " + publicIP);
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
获取所有网络接口的IP地址
如果需要获取所有网络接口的IP地址,可以使用NetworkInterface类:
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
public class GetAllIPs {
public static void main(String[] args) {
try {
Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
while (interfaces.hasMoreElements()) {
NetworkInterface networkInterface = interfaces.nextElement();
Enumeration<InetAddress> addresses = networkInterface.getInetAddresses();
while (addresses.hasMoreElements()) {
InetAddress address = addresses.nextElement();
System.out.println("Interface: " + networkInterface.getName() +
", IP: " + address.getHostAddress());
}
}
} catch (SocketException e) {
e.printStackTrace();
}
}
}
注意事项
- 查询公网IP需要网络连接。
- 某些网络环境可能限制对外部服务的访问。
- 获取所有网络接口IP时,可能会包含IPv6地址和回环地址(如127.0.0.1)。






