手机版 收藏 导航

Java 获取本地 IP 地址的几种方式

原创   www.link114.cn   2024-09-07 21:38:03

Java 获取本地 IP 地址的几种方式

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 类以及第三方库。开发者可以根据实际需求选择合适的方法。不同的方法都有自己的优缺点,开发者需要根据具体情况进行权衡和选择。