Как найти IP-адрес по умолчанию, если я подключен к более чем одной сети? Я нашел одну ссылку
Но в «Отправке PDU сетевого уровня» написано, что
PacketSender sender;
IP pkt = IP ("192.168.0.1") / TCP (22) / RawPDU ("foo"); sender.send (pkt);
Обратите внимание, что в конструкторе IP не указан исходный адрес. По умолчанию используется адрес 0.0.0.0. Однако при отправке блоков PDU сетевого уровня, если адрес источника равен 0.0.0.0, PDU выполнит поиск в таблице маршрутизации, чтобы выяснить, какой должен быть адрес источника, и автоматически установит его.
Итак, есть ли способ найти исходный адрес с помощью c ++?
Как только вы подключите розетку, вы можете позвонить getsockname
на нем, чтобы узнать локальный IP-адрес.