InetAddress 类是 Java 提供的一个网络编程工具类。通过调用 InetAddress 的 getLocalHost()
方法可以获取本地主机的 IP 地址。例如:
InetAddress localHost = InetAddress.getLocalHost();
String ipAddress = localHost.getHostAddress();
NetworkInterface 类提供更详细的网络接口信息。可以使用 getNetworkInterfaces()
方法获取所有的网络接口,遍历每个接口,获取其 IP 地址。例如:
Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
while (networkInterfaces.hasMoreElements()) {
NetworkInterface networkInterface = networkInterfaces.nextElement();
Enumeration<InetAddress> inetAddresses = networkInterface.getInetAddresses();
while (inetAddresses.hasMoreElements()) {
InetAddress inetAddress = inetAddresses.nextElement();
if (!inetAddress.isLoopbackAddress()) {
String ipAddress = inetAddress.getHostAddress();
// 处理 IP 地址
}
}
}
除上述两种方法,也可以使用第三方库来获取本地 IP 地址,如 Apache Commons 的 InetAddressUtils
类。例如:
String ipAddress = InetAddressUtils.getLocalHostAddress();
Java 提供多种获取本地 IP 地址的方式,包括使用 InetAddress 类、NetworkInterface 类以及第三方库。开发者可以根据实际需求选择合适的方法。不同的方法都有自己的优缺点,开发者需要根据具体情况进行权衡和选择。