У меня есть интерфейсAddress, который возвращает адрес ipv4 (4 октета). Однако длина сетевого префикса, по-видимому, относится к адресу ipv6, связанному с интерфейсом (он возвращается как 128). Как найти правильную длину префикса сети?Как получить маску подсети IPv4 на интерфейсе с адресом v4 и v6?
Enumeration<NetworkInterface> NetworkInterface.getNetworkInterfaces()
for (; interfaces.hasMoreElements();) {
final List<InterfaceAddress>interfaceAddresses =
interfaces.nextElement().getInterfaceAddresses();
for (final InterfaceAddress address : interfaceAddresses) {
assert(address.getAddress().getAddress().length == 4); // [sic]
assert(address.getNetworkPrefixLength() < 32); // <- Fails. Actually equals 128
}
}