как я могу получить общедоступную конечную точку (ip, port) моего серверного приложения в сети NAT - PullRequest
0 голосов
/ 07 августа 2011

я запускаю свой сервер в среде NAT и хочу проверить его в общедоступной сети, как я могу получить его адрес? Я использую boost :: asio для написания своего приложения.

1 Ответ

0 голосов
/ 07 августа 2011

Если вы хотите узнать общедоступный IP-адрес партнера, вам нужно иметь один сервер в общедоступной сети (без каких-либо NAT), подключиться к серверу и разрешить серверу отправлять клиенту IP-адрес, который он видит. Этот сайт (http://www.whatismyip.com/) показывает ваш публичный адрес таким способом. Итак, ваш сервер должен подключиться к другому серверу, который находится в общедоступной сети без использования NAT.

Однако ваш сервер в любом случае не должен находиться в среде NAT, поскольку NAT обычно блокирует любые входящие соединения, которые не инициированы изнутри одноранговых узлов. Это означает, что даже если клиент знает публичный адрес вашего сервера, он не сможет подключиться к серверу за NAT, поскольку NAT заблокирует клиентский запрос на подключение.

...