DSN can return multiple IP addresses so rather then using DNS resolving to get the IP address after my request I want to get the IP that my HttpWebRequest connected to.
Is there anyway to do this in .NET 3.5?
For example when I开发者_C百科 do a simple web request to www.microsoft.com I want to learn that which IP address it connected to send the HTTP request, I want to this programmatically (not via Wireshark etc.)
This is a working example:
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());
}
}
here you go
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;
}
Use remoteEndPoint to collect the data you want.
精彩评论