Широковещательные адреса для всех локальных сетевых интерфейсов И длины их префиксовC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Широковещательные адреса для всех локальных сетевых интерфейсов И длины их префиксов

Сообщение Anonymous »

Я знаю, что вопрос о широковещательном адресе обсуждался много раз. Но я не нашел ни одного, когда в ответе учитывалась длина префикса сетевой маски при расчете широковещательного адреса.
Все ответы дают код, который заканчивается чем-то вроде x.x.x.255, и все довольны, но, как мы знаем отсюда, https ://www.wikihow.com/Calculate-Network-and-Broadcast-Address, 255 не всегда правильно. Например, трансляция должна рассчитываться с использованием длины префикса сетевой маски.
Итак, что мне делать, если я использую boost asio:
  • получить список всех локальных интерфейсов, используя tcp::resolver::query
  • цикл через tcp::resolver::iterator

    Код: Выделить всё

    2.1 - extract IP from endpoint

    Код: Выделить всё

    2.2 - need to do something, to determine REAL broadcast address of the network the interface connected to!

Код: Выделить всё

    std::set interfaces;

using boost::asio::ip::tcp;
boost::asio::io_service service;
boost::system::error_code ec;
tcp::resolver::query resolver_query(tcp::v4(), hostname(), "", tcp::resolver::query::numeric_service);
tcp::resolver resolver(service);
tcp::resolver::iterator it = resolver.resolve(resolver_query, ec);

if (ec)
{
//std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79031858/broadcast-addresses-for-all-local-netowk-interfaces-and-their-prefix-lengths[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»