我正在尝试访问托管在多个IP上的域名。当IP范围发生变化时,我们的防火墙将阻止任何请求,因为不允许使用IP。
该应用程序将通知我们它无法建立连接,但它不会告诉我们它尝试使用哪个IP地址。
我使用HTTPWebRequest创建请求,使用HttpWebResponse接收响应
在使用URL实例化时,或者在请求完成后,HttpWebRequest似乎没有属性中的IP地址。
我犹豫是否可以从HTTPWebResponse获取此信息,因为如果防火墙阻止它,我不知道它是否会有IP地址。
已经提到的一个例子是将委托设置为:
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;
}
How to get IP address of the server that HttpWebRequest connected to?
这似乎有效,但我想知道是否有其他方法可以做到这一点,而无需设置代理。当我调试时,我发现这个代表一直在运行,我不知道这是不是一个问题。