使用特定 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;
      }

上面的代码抛出套接字异常。

任何想法都非常感谢。

谢谢,乔希

使用特定 IP 发送 HTTP 网络请求

删除此行:(用于打开接受客户端的端口)

   tempSocket.Bind(ipEndPoint);

您希望通过通过以下方式连接到服务器来充当客户端:

   tempSocket.Connect(ipEndPoint);

你真的确定要连接到零端口吗,我很确定这不是一个有效的选择。(标准 HTTP = 80,HTTPS = 443)

   var ipEndPoint = new IPEndPoint(IPAddress.Parse(exit.Address), 80);