使用不同的 IP 进行网络服务调用
using a different IP for webservice calls
场景 - 站点上的多台计算机(数据库、应用程序、报告等)所有系统现在都在使用客户分配的 IP 地址运行。
新的变化是——生成对外部数据提供商(状态 运行 网站)的 Web 服务调用的系统需要从不同的 IP 地址发起流量。新的 IP 地址是唯一允许通过防火墙的地址,内部数据流量将留在系统的飞地内,相互通信。同一台机器(应用程序服务器)是用户使用网络服务器的接口,分配有两个(或更多)IP 地址。
问题来了-在代码中,有没有办法让web服务发起者调用使用不同的IP地址与外界通信?
通过httpclient可能很难实现,但是HttpWebRequest如果你使用asp.net可以帮助你。
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://whosebug.com");
System.Net.WebProxy proxy = new WebProxy("the IP", 80);
request.Proxy = proxy;
using (WebResponse response = request.GetResponse())
{
using (TextReader reader = new StreamReader(response.GetResponseStream()))
{
string line;
while ((line = reader.ReadLine()) != null)
Console.WriteLine(line);
}
}
场景 - 站点上的多台计算机(数据库、应用程序、报告等)所有系统现在都在使用客户分配的 IP 地址运行。
新的变化是——生成对外部数据提供商(状态 运行 网站)的 Web 服务调用的系统需要从不同的 IP 地址发起流量。新的 IP 地址是唯一允许通过防火墙的地址,内部数据流量将留在系统的飞地内,相互通信。同一台机器(应用程序服务器)是用户使用网络服务器的接口,分配有两个(或更多)IP 地址。
问题来了-在代码中,有没有办法让web服务发起者调用使用不同的IP地址与外界通信?
通过httpclient可能很难实现,但是HttpWebRequest如果你使用asp.net可以帮助你。
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://whosebug.com");
System.Net.WebProxy proxy = new WebProxy("the IP", 80);
request.Proxy = proxy;
using (WebResponse response = request.GetResponse())
{
using (TextReader reader = new StreamReader(response.GetResponseStream()))
{
string line;
while ((line = reader.ReadLine()) != null)
Console.WriteLine(line);
}
}