Как связать сокет с нелокальным интерфейсом?

Я использую адрес NAT вместо адреса локального интерфейса для привязки вызова сокета. Я получаю эту ошибку - Ошибка привязки (99): Невозможно назначить запрошенный адрес. Существуют ли какие-либо параметры конфигурации, которые можно использовать для передачи IP-адреса NAT вместо IP-адреса системы для привязки. Я запускаю программу на esxi.

struct addrinfo hints;
memset(&hints, 0, sizeof hints);
hints.ai_socktype = SOCK_DGRAM;
hints.ai_protocol = IPPROTO_UDP;
hints.ai_flags |= AI_PASSIVE; 

getaddrinfo(NATIP.c_str(), "0", &hint, &myAddr);
bind(sock, myAddr->ai_addr, myAddr->ai_addrlen);

Подскажите, пожалуйста, это возможно или нет?


person user1527651    schedule 13.12.2016    source источник
comment
Вы хотите привязаться к адресу, которого нет на вашей локальной машине?   -  person that other guy    schedule 13.12.2016
comment
Да, я хочу привязаться к адресу не на моей локальной машине. Мой NAT IP из другой системы. Приемник отклонит, если он не исходит от зарегистрированного IP-адреса NAT.   -  person user1527651    schedule 13.12.2016
comment
Вы не делаете этого в прикладном программном обеспечении, это делается автоматически маршрутизатором NAT.   -  person Barmar    schedule 13.12.2016