Как сделать outgtoing соединение TCP через указанный сетевой интерфейс?

Есть ли способ реализовать в программе C следующую опцию: это - потребность к созданию исходящих соединений TCP через указанный сетевой интерфейс? как пример:

eth0 - 172.16.0.1 eth1 - 192.168.1.1

В некотором случае я - потребность установить исходящие связи от исходного адреса 172.16.0.1, и при некоторых других обстоятельствах от 192.168.1.1.

Действительно ли это возможно? Это, может быть достигнут с, связывают () стандартную программу?

TIA.

0
задан 17 February 2019 в 12:34

1 ответ

Используйте параметр командной строки для присвоения локального адреса следующим способом

структура sockaddr_in localaddr;

localaddr.sin_family = AF_INET;

localaddr.sin_addr.s_addr = inet_addr ("172.16.0.1");

localaddr.sin_port = 0;//Любой локальный порт сделает

, связывают (sockfd, (структура sockaddr *) & localaddr, sizeof (localaddr));

И когда Вы хотите использовать другой IP затем, используют его вместо 172.16.0.1

0
ответ дан 21 September 2019 в 15:00

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

Похожие вопросы: