Назад | Перейти на главную страницу

Как найти исходный IP-адрес?

Как найти IP-адрес по умолчанию, если я подключен к более чем одной сети? Я нашел одну ссылку

http://libtins.github.io/tutorial/sending/

Но в «Отправке 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-адрес.