Получить адрес клиента, подключенного через NAT, по дескриптору сокета?

Есть клиент, есть сервер в Интернете; клиент подключается к серверу из локальной сети через NAT.

Точнее, через несколько NAT:

192.168.3.x (это клиент) ->192.168.3.1 -> 192.168.2.1 -> 192.168.1.1 -> (ISP) -> сервер


Проблема: сервер делает getpeername(..) и получает адрес клиента 192.168.1.1; нужен же его внешний Интернет-адрес (для геолокации).


Что делать?
  • Вопрос задан
  • 2622 просмотра
Пригласить эксперта
Ответы на вопрос 1
@YourChief
ничего. нат потому и нат, что скрывает адреса. вы можете только запросить у клиента его адрес на уровне приложения, если это предусмотрено в протоколе/приложении
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы