设置HttpWebRequest的IP地址

时间:2013-09-03 19:35:48

标签: asp.net httpwebrequest ip

我有一个具有固定IP地址的站点,我通过HttpWebRequest对后端数据服务器方法进行c#调用。此后端系统将设置为仅允许来自我站点的IP固定地址的传入请求。

有没有办法将HttpWebRequest的IP地址设置为我网站的IP(我怀疑我的云主机或.net在某种程度上允许使用其他IP)?

我不是想欺骗IP;我想确保我的asp.net代码使用网站自己的专用IP,或者至少检查它在发出请求时可能使用的IP。

1 个答案:

答案 0 :(得分:5)

使用HttpWebRequest.ServicePoint.BindIPEndPointDelegate属性:

request.ServicePoint.BindIPEndPointDelegate = delegate 
    { 
        return new IPEndPoint(IPAddress.Parse("10.0.0.3"), 0); 
    };

示例:

using System;
using System.Net;
using System.IO;

class Program
{
    public static void Main ()
    {
        var request = (HttpWebRequest)HttpWebRequest.Create ("http://smsc.vianett.no/ip/");
        request.ServicePoint.BindIPEndPointDelegate = delegate { return new IPEndPoint(IPAddress.Parse("YOUR_IP_HERE"), 0); };
        var response = (HttpWebResponse)request.GetResponse ();
        Console.WriteLine (new StreamReader (response.GetResponseStream ()).ReadToEnd ());
    }
}
相关问题