Почему я получаю -1 для длины сетевого префикса в Java?

Поэтому я пишу программу, которая создает список всех IP-адресов от сетевого адреса до адреса широковещательной рассылки, а затем перебирает их и проверяет, доступны ли они. Код, который у меня есть, прекрасно работает в проводных сетях, но как только я попробую его в сети Wi-Fi, все становится не так. Я получу -1 для длины префикса, и это заставит мой код зацикливаться на 0.0.0.0-255.255.255.255, что просто... ужасно.

Следующий код показывает, как я получаю NetworkInterfaces. Проблема может быть в том, что я проверяю неправильный интерфейс или не проверяю его правильно.

InetAddress host_address = InetAddress.getLocalHost();
NetworkInterface net_int = NetworkInterface.getByInetAddress(host_address);
int host_subnet = net_int.getInterfaceAddresses().get(0).getNetworkPrefixLength();
out.println(host_address);

Из того, что я понимаю, это должно работать, но это не так. Я получаю правильный префикс для проводных подключений, но -1 в беспроводных сетях. Я чувствую, что это ошибка новичка, но я новичок, так что ¯\_(ツ)_/¯

Любая помощь будет оценена, спасибо.

0 ответов

Другие вопросы по тегам