Как получить IP-адрес сервера, отвечающего на WebResponse C # - PullRequest
3 голосов
/ 17 декабря 2009

Я пытаюсь найти IP-адрес (не имя хоста), который ответил на мой WebRequest в C #. Я не хочу делать разрешение DNS, потому что это случаи, когда возвращаемые записи DNS не являются серверами, отвечающими на запрос. Например:

Клиент -> Балансировщик нагрузки -> Веб-сервер

DNS-сервер ответит IP-адресом балансировщика нагрузки. Предполагая, что отвечающий веб-сервер не возвращается через балансировщик нагрузки, тогда IP-адрес будет фактическим веб-сервером, который я и пытаюсь найти.

Ответы [ 2 ]

1 голос
/ 29 декабря 2009

Я думаю, вам придется пойти в OSI, создать и использовать свой собственный сокет;
тогда у вас будет доступ к свойству RemoteEndPoint (по крайней мере, после того, как ваш сокет подключился или был подключен), например так:

Socket sprocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);<br> sprocket.Connect("www.google.com", 80);<br> string IPAddressOfRespondingServer = ((IPEndPoint)sprocket.RemoteEndPoint).Address.ToString();

1 голос
/ 17 декабря 2009

У вас есть доступ к коду на стороне сервера? Или к настройке веб-сервера? Вы всегда можете поместить IP-адрес компьютера или любой другой идентификатор в произвольный заголовок и посмотреть его на клиенте.

Что касается вашего исходного вопроса, я не верю, что информация где-либо раскрывается классами HttpWebRequest / HttpWebResponse.

...