Choosing which IP the HTTP request is using when having multiple IPs (.NET)

前端 未结 1 1888
梦毁少年i
梦毁少年i 2020-12-01 13:10

I am writing a .NET program which will run on a computer with several IP addresses. The program makes HTTP requests to given web addresses. I want to choose which IP address

相关标签:
1条回答
  • 2020-12-01 14:09

    I believe you can force the local endpoint by providing a BindIPEndPointDelegate which supplies the IP/port to bind to.

    string sendingIp = "192.168.0.1";
    int sendingPort = 5000;
    Uri uri = new Uri("http://google.com");
    HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(uri);
    ServicePoint sp = ServicePointManager.FindServicePoint(uri);
    sp.BindIPEndPointDelegate =
        (servicePoint,remoteEp,retryCount) =>
             {
                 return new IPEndPoint(IPAddress.Parse(sendingIp),sendingPort);
             };
    var data = new StreamReader(wr.GetResponse().GetResponseStream()).ReadToEnd();
    

    This code doesn't deal with disposal correctly.

    0 讨论(0)
提交回复
热议问题