如何使用Java获取本地系统的Subnet
掩码地址?
发布于 2009-08-03 10:20:38
localhost接口的第一个地址的网络掩码:
InetAddress localHost = Inet4Address.getLocalHost();
NetworkInterface networkInterface = NetworkInterface.getByInetAddress(localHost);
networkInterface.getInterfaceAddresses().get(0).getNetworkPrefixLength();
一种更完整的方法:
InetAddress localHost = Inet4Address.getLocalHost();
NetworkInterface networkInterface = NetworkInterface.getByInetAddress(localHost);
for (InterfaceAddress address : networkInterface.getInterfaceAddresses()) {
System.out.println(address.getNetworkPrefixLength());
}
/24表示255.255.255。
发布于 2009-08-03 10:05:46
SE6中的java.net.InterfaceAddress有一个getNetworkPrefixLength方法,顾名思义,它返回网络前缀长度。如果您希望子网掩码采用该格式,则可以从中计算子网掩码。java.net.InterfaceAddress同时支持IPv4和IPv6。
多个网络应用程序API中的getSubnetMask()返回指定IP地址(一个本地系统可能有多个本地IP地址)的java.net.InetAddress形式的子网掩码
发布于 2013-01-10 17:02:33
我发现:
NetworkInterface networkInterface = NetworkInterface.getByInetAddress(localHost);
要获得ipv6的子网掩码,我们可以使用:
networkInterface.getInterfaceAddresses().get(0).getNetworkPrefixLength();
要获得ipv4的子网掩码,我们可以使用:
networkInterface.getInterfaceAddresses().get(1).getNetworkPrefixLength();
https://stackoverflow.com/questions/1221517
复制相似问题