使用特定 IP 发送 HTTP 网络请求
本文关键字:HTTP 网络 请求 发送 IP | 更新日期: 2023-09-27 18:34:06
>我做了一个程序,它发送HTTP-webrequests。
为了保护发送的这些请求,我希望能够定义一个 IP,请求应该通过该 IP 发送。因此,如果默认出口不起作用,则应通过另一个出口发送请求。
我尝试通过使用IPEndPoint和套接字来做到这一点,但不知何故它不起作用。
这是我到目前为止的代码
public Response ExecuteRequest(RequestData requestData, NetworkAddress exit) {
Tracer.Info("Versuche Request über HTTP abzusetzen.");
if (!PrepareIpEndPoint(Address, exit)) {
return null;
}
Address = new Uri(PlaceholderReplacer.ReplacePlaceholders(Address.ToString(), requestData));
return RequestExecutor.ExecuteRequest(Address);
}
private bool PrepareIpEndPoint(Uri url, NetworkAddress exit) {
Tracer.Debug(string.Format("Setze den IP-Endpoint auf{0}", exit));
var ipEndPoint = new IPEndPoint(IPAddress.Parse(exit.Address), 0);
var tempSocket = new Socket(ipEndPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
tempSocket.Bind(ipEndPoint);
tempSocket.Connect(ipEndPoint);
return tempSocket.Connected;
}
上面的代码抛出套接字异常。
任何想法都非常感谢。
谢谢,乔希
删除此行:(用于打开接受客户端的端口)
tempSocket.Bind(ipEndPoint);
您希望通过通过以下方式连接到服务器来充当客户端:
tempSocket.Connect(ipEndPoint);
你真的确定要连接到零端口吗,我很确定这不是一个有效的选择。(标准 HTTP = 80,HTTPS = 443)
var ipEndPoint = new IPEndPoint(IPAddress.Parse(exit.Address), 80);