Java,通过 ip 地址拆分 NetworkInterface

Java, split NetworkInterface by ip addresses

我的第一个post,所以请温柔点;) 我必须修改一些专注于 java.net.NetworkInterface 的现有软件。 以前所有接口都列在一个组合框中,用户必须选择一个。 现在应该不仅可以选择接口,还可以选择该接口附带的一个特定 IP 地址。 由于很多代码都是基于 NetworkInterface class,我在想是否可以通过按 IP 地址拆分现有的 NetworkInterface 来“创建”一些新的 NetworkInterface。 这可能吗? 我知道,我无法创建新的 NetworkInterface。但也许还有另一种选择,我现在看不到。

这是我目前得到的:

public static List<NetworkInterface> listNetworkInterfaces() throws SocketException
{
    List<NetworkInterface> interfaces = new ArrayList<>();
    Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
    while (networkInterfaces.hasMoreElements())
    {
        NetworkInterface intrface = networkInterfaces.nextElement();
        
        //ignore logalhost interface
        if (intrface.isLoopback() || intrface.isVirtual() || !intrface.isUp())
            continue;

        // here should be the point, where I seperate the ip adresses from one interface
        Enumeration<InetAddress> inetAddresses = intrface.getInetAddresses();
        while (inetAddress.hasMoreElements())
            System.out.println("InetAddress: " + inetAddress);
    

        interfaces.add(intrface);
    }
    return interfaces;
}

我认为,您将构建一个 Map,以在您的组合框中提供 InetAddress 的值(带有或不带有相应 NetworkInterface 的名称)并能够处理一对值(InetAddress, NetworkInterface) 当用户做出选择时。