Servlet 中获取本机 IP 地址
web 应用中获取本机 IP 地址
获取的 IP 地址 Java 代码
public static void main(String[] args) throws Exception {
InetAddress address = InetAddress.getLocalHost();
// 获取本机 IP 地址
String host = address.getHostAddress();
System.err.println(host);
}
输出结果
注意
这种方式获取的 IP 地址会受本机虚拟网卡的影响, 例如: 本机安装的 VMware 则有可能会获取到 VMware 的虚拟网卡
获取所有网卡 IP
说明
这种方式会将本机所有的网卡对应的 IP 地址都读取到, 包括虚拟网卡的也能读取到
public static List<String> getLocalIPList() {
List<String> ipList = new ArrayList<String>();
try {
Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
NetworkInterface networkInterface;
Enumeration<InetAddress> inetAddresses;
InetAddress inetAddress;
String ip;
while (networkInterfaces.hasMoreElements()) {
networkInterface = networkInterfaces.nextElement();
inetAddresses = networkInterface.getInetAddresses();
while (inetAddresses.hasMoreElements()) {
inetAddress = inetAddresses.nextElement();
if (inetAddress != null && inetAddress instanceof Inet4Address) { // IPV4
ip = inetAddress.getHostAddress();
ipList.add(ip);
}
}
}
} catch (SocketException e) {
e.printStackTrace();
}
return ipList;
}