1

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

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

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

4

1 回答 1

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 ());
    }
}
于 2013-09-03T20:34:43.113 回答