Как получить IP-адрес сервера, к которому подключен HttpWebRequest? - PullRequest
7 голосов
/ 11 июля 2011

DSN может вернуть несколько IP-адресов, поэтому вместо разрешения DNS для получения IP-адреса после моего запроса я хочу получить IP-адрес, к которому подключен мой HttpWebRequest.

В любом случае это можно сделать в .NET3.5?

Например, когда я делаю простой веб-запрос к www.microsoft.com, я хочу узнать, к какому IP-адресу он подключен для отправки HTTP-запроса, я хочу это программно ( не черезWireshark и т. Д. )

Ответы [ 2 ]

4 голосов
/ 12 июля 2011

здесь вы идете

static void Main(string[] args)
        {
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://www.microsoft.com");
            req.ServicePoint.BindIPEndPointDelegate = new BindIPEndPoint(BindIPEndPoint1);

            Console.ReadKey();
        }

        public static IPEndPoint BindIPEndPoint1(ServicePoint servicePoint, IPEndPoint remoteEndPoint, int retryCount)
        {
            string IP = remoteEndPoint.ToString();
            return remoteEndPoint;
        }

Используйте remoteEndPoint для сбора данных, которые вы хотите.

3 голосов
/ 04 сентября 2013

Это рабочий пример:

using System;
using System.Net;

class Program
{
    public static void Main ()
    {
        IPEndPoint remoteEP = null;
        HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://www.google.com");
        req.ServicePoint.BindIPEndPointDelegate = delegate (ServicePoint servicePoint, IPEndPoint remoteEndPoint, int retryCount) {
            remoteEP = remoteEndPoint;
            return null;
        };
        req.GetResponse ();
        Console.WriteLine (remoteEP.Address.ToString());
    }
}
...