7
DSN可以返回多个IP地址,而不是使用DNS解析来获取我的请求后的IP地址我想获取我的HttpWebRequest连接到的IP。如何获取HttpWebRequest连接的服务器的IP地址?
无论如何要在.NET 3.5中做到这一点?
例如,当我做一个简单的Web请求访问www.microsoft.com我想得知其IP地址,连接发送HTTP请求,我想这个编程(不通过的Wireshark等)
DSN可以返回多个IP地址,而不是使用DNS解析来获取我的请求后的IP地址我想获取我的HttpWebRequest连接到的IP。如何获取HttpWebRequest连接的服务器的IP地址?
无论如何要在.NET 3.5中做到这一点?
例如,当我做一个简单的Web请求访问www.microsoft.com我想得知其IP地址,连接发送HTTP请求,我想这个编程(不通过的Wireshark等)
在这里你去
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收集所需的数据。
这是一个工作示例:
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());
}
}
有什么理由建立一个WebProxy? –
其次不会返回remoteEndPoint会失败吗?当我读取BindIPEndPointDelegate用于绑定本地IP地址时,如果返回remoteEndPoint,它将失败(或类似的东西),因为它无法绑定它。我假设返回这应该修复它,虽然:新IPEndPoint(IPAddress.Any,0) –
我已经尝试过,但BindIPEndPoint1方法永远不会被调用。 – user626528