我有一个具有固定 IP 地址的站点,我通过 HttpWebRequest 对后端数据服务器方法进行 c# 调用。此后端系统将设置为仅允许来自我站点的 IP 固定地址的传入请求。
有没有办法将 HttpWebRequest 的 IP 地址设置为我网站的 IP(我怀疑我的云主机或 .net 以某种方式允许使用其他 IP)?
我不是要欺骗 IP;我想确保我的 asp.net 代码使用该站点自己的专用 IP,或者至少检查它在发出请求时可能使用的 IP。
我有一个具有固定 IP 地址的站点,我通过 HttpWebRequest 对后端数据服务器方法进行 c# 调用。此后端系统将设置为仅允许来自我站点的 IP 固定地址的传入请求。
有没有办法将 HttpWebRequest 的 IP 地址设置为我网站的 IP(我怀疑我的云主机或 .net 以某种方式允许使用其他 IP)?
我不是要欺骗 IP;我想确保我的 asp.net 代码使用该站点自己的专用 IP,或者至少检查它在发出请求时可能使用的 IP。
使用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 ());
}
}