Java中获取本机所有IP

在Java中,我们可以使用java.net包下的NetworkInterface类来获取本机所有的IP地址。NetworkInterface类提供了一些方法来获取网络接口的信息,包括获取接口的IP地址、子网掩码、MAC地址等。

获取本机所有IP地址

要获取本机所有的IP地址,我们可以使用以下步骤:

  1. 使用NetworkInterface.getNetworkInterfaces()方法获取本机的所有网络接口。
  2. 遍历每个网络接口,使用NetworkInterface.getInetAddress()方法获取该接口的所有IP地址。
  3. 对于每个IP地址,使用InetAddress.getHostAddress()方法获取IP地址的字符串表示。

以下是获取本机所有IP地址的示例代码:

import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.Enumeration;

public class GetLocalIPAddresses {
    public static void main(String[] args) throws Exception {
        Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
        while (interfaces.hasMoreElements()) {
            NetworkInterface networkInterface = interfaces.nextElement();
            Enumeration<InetAddress> addresses = networkInterface.getInetAddresses();
            while (addresses.hasMoreElements()) {
                InetAddress address = addresses.nextElement();
                if (!address.isLoopbackAddress() && address.isSiteLocalAddress()) {
                    System.out.println("IP Address: " + address.getHostAddress());
                }
            }
        }
    }
}

运行以上代码,你将获得本机所有的IP地址。

代码解析

首先,我们使用NetworkInterface.getNetworkInterfaces()方法获取本机的所有网络接口。然后,通过遍历每个网络接口,我们可以获取该接口的所有IP地址。

对于每个IP地址,我们使用InetAddress.isLoopbackAddress()方法来判断该地址是否为回环地址(Loopback Address),即localhost,我们可以忽略这些地址。然后,使用InetAddress.isSiteLocalAddress()方法来判断该地址是否为本地地址(Site Local Address),我们只关注本地地址。

最后,我们使用InetAddress.getHostAddress()方法获取IP地址的字符串表示。

结论

在Java中,我们可以通过使用NetworkInterface类来获取本机所有的IP地址。通过遍历网络接口和IP地址,我们可以获取所有的本地地址。这对于需要获取本机IP地址的网络应用程序非常有用。

希望本文对你了解如何在Java中获取本机所有IP地址有所帮助。