Я использую TcpClient для прослушивания порта для запросов. Когда запросы поступают от клиента, я хочу знать, что клиент ip делает запрос.
Я пробовал:
Console.WriteLine(tcpClient.Client.RemoteEndPoint.ToString());
Console.WriteLine(tcpClient.Client.LocalEndPoint.ToString());
var networkStream = tcpClient.GetStream();
var pi = networkStream.GetType().GetProperty("Socket", BindingFlags.NonPublic | BindingFlags.Instance);
var socketIp = ((Socket)pi.GetValue(networkStream, null)).RemoteEndPoint.ToString();
Console.WriteLine(socketIp);
Все эти адреса выдают адреса 10.x.x.x, которые являются частными адресами и явно не являются адресом клиентов из моей сети, делающих запросы. Что я могу сделать, чтобы получить публичный ip клиентов, делающих запросы?
Edit: Мы используем балансировщик нагрузки Amazon EC2 с пересылкой tcp. Есть ли способ получить истинный клиентский ip в этой настройке?