如何从不同的静态IP地址向任何网站发送请求
本文关键字:任何 网站 请求 地址 IP 静态 | 更新日期: 2023-09-27 18:22:23
我使用C#发送HTTP请求。(http://codesamplez.com/programming/http-request-c-sharp)
我在上有专用服务器。我购买了更多的静态IP。
如何使用这些不同的IP发送请求。
您想要做的是绑定到特定的网络适配器。默认情况下,LocalEndpoint为null,因此将为您的连接分配一个适配器。您可以使用HttpWebRequest.ServicePoint.BindIPEndPointDelegate.指定要绑定的内容
var req = (HttpWebRequest)WebRequest.Create("http://google.com/");
req.ServicePoint.BindIPEndPointDelegate = BindTo;
using (req.GetResponse());
static IPEndPoint BindTo(ServicePoint servicepoint, IPEndPoint remoteendpoint, int retrycount)
{
IPAddress ip = IPAddress.Any; //This is where you specify the network adapter's address
int port = 0; //This in most cases should stay 0. This when 0 will bind to any port available.
return new IPEndPoint(ip, port);
}
以下是有关msdn绑定的更多信息。
如果需要使用特定的本地终结点,请使用Bind方法。你必须先调用Bind,然后才能调用Listen方法你不需要在使用Connect方法之前调用Bind,除非需要使用特定的本地端点您可以在两者上使用Bind方法无连接和面向连接的协议。
在调用Bind之前,必须首先从创建本地IPEndPoint您打算用它来传递数据。如果你不在乎哪个地方地址已分配,您可以使用IPAddress创建IPEndPoint。任何作为地址参数,并且底层服务提供商将分配最合适的网络地址。这可能有助于简化如果你有多个网络接口。如果你这样做不管使用哪个本地端口,都可以使用创建IPEndPoint0表示端口号。在这种情况下,服务提供商将分配1024到5000之间的可用端口号。
如果你使用上面的方法,你可以发现什么本地网络地址和端口号已通过调用LocalEndPoint。如果您使用的是面向连接的协议,LocalEndPoint不会返回本地分配的网络地址直到调用Connect或EndConnect方法之后。如果您使用的是无连接协议,您将无法访问直到您完成发送或接收。