选择WebClient传出IP
本文关键字:IP 传出 WebClient 选择 | 更新日期: 2024-09-21 09:59:49
我的.net应用程序使用WebClient访问互联网上的文件,我的机器有多个IP地址。有没有一种方法可以在发出出站请求时通过程序选择使用哪个IP而不是第一个IP?(不一定是WebClient)
实现这一点的一种可能性是使用ServicePoint.BindIPEndPointDelegate
事件并指定要使用的IP地址。
示例:
var uri = new Uri("YOUR URI");
var servicePoint = ServicePointManager.FindServicePoint(uri);
servicePoint.BindIPEndPointDelegate = (sp, remoteEndPoint, retryCount) =>
{
var address = IPAddress.Parse("PUT YOUR DESIRED IP HERE");
return new IPEndPoint(address, 0);
};
现在尝试向相应的url发出HTTP请求。
或者,如果您使用HttpWebrequest
,您可以根据每个请求为每个代表分配:
var request = (HttpWebRequest)WebRequest.Create("YOUR URI");
request.ServicePoint.BindIPEndPointDelegate = (sp, remoteEndPoint, retryCount) =>
{
var address = IPAddress.Parse("PUT YOUR DESIRED IP HERE");
return new IPEndPoint(address, 0);
};
using (var response = request.GetResponse())
{
...
}