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) 当用户做出选择时。
我的第一个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