У меня есть код С#, работающий на компьютере с несколькими IP-адресами, и у меня есть следующий код для выбора IP-адреса для httpWebRequest:
class Interact
{
<data, cookies, etc>
HttpWebRequest CreateWebRequest(...)
{
.....
request.ServicePoint.BindIPEndPointDelegate = delegate(
ServicePoint servicePoint,
IPEndPoint remoteEndPoint,
int retryCount)
{
if (lastIpEndpoint!=null)
{
return lastIpEndpoint;
}
var candidates =
GetAddresses(remoteEndPoint.AddressFamily);
if (candidates==null||candidates.Count()==0)
{
throw new NotImplementedException();
}
return
lastIpEndpoint = new IPEndPoint(candidates[rnd.Next(candidates.Count())],0);
};
};
return request;
}
}
Вот код GetAddresses:
static IPAddress[] GetAddresses(AddressFamily af)
{
System.Net.IPHostEntry _IPHostEntry = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName());
return (from i in _IPHostEntry.AddressList where i.AddressFamily == af select i).ToArray();
}
Предполагается, что этот код выбирает случайный IP-адрес из доступного списка IP-адресов, а затем придерживается его.
Вместо этого каждый раз, когда я отправляю запрос с ним, я получаю следующее исключение:
Unable to connect to the remote server
Как мне заставить это работать?