使用特定的IP来发送HTTP-webrequests

时间:2016-02-10 15:11:32

标签: c# .net network-programming

我制作了一个发送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;
      }

上面的代码抛出了SocketExceptions。

非常感谢任何想法。

谢谢,乔希

1 个答案:

答案 0 :(得分:0)

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

=IIF(Parameters!Month.Value<>1,MonthName(Parameters!Month.Value-1),"December")

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

   tempSocket.Bind(ipEndPoint);

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

   tempSocket.Connect(ipEndPoint);