4

我已经全面搜索了如何使用 BindIPEndPointDelegate 来更改我的 HttpWebRequest 的源端口。我在这方面找到了多个帖子:

这里这里

但是,它似乎对我不起作用。我发现这个人也有同样的问题: Define Outgoing/Calling Port for SOAP Web Service in Visual Studio 2010

基本上,我想在连接到网页时更改我的源端口。BindIPEndPointDelegate 非常简单。

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
 req.ServicePoint.BindIPEndPointDelegate = (servicePoint, remoteEp, retryCount) =>
             {
                 return new IPEndPoint(IPAddress.Any, 8086);
             };

当我使用 netstat -n 查看连接时,我希望将 myipaddress:8086 视为源 IP 和目标 IP:80。我在 netstat 中看到的是它正在使用我指定的端口创建一个环回 (127.0.0.1:8086)。查看netstat -n的屏幕截图

由于这是我的第一篇文章,我无法发布图片。所以图片可以在这里找到

为什么 BindIPEndPointDelegate 创建一个环回连接,如何让我的 WebRequest 表现得像具有我指定端口的浏览器?

我在一个win7 Pro盒子上,没有本地防火墙,没有通过代理。

4

1 回答 1

0

我今天遇到了类似的问题。我在 BindIPEndPointDelegate 中选择了一个特定的源端口,但使用 WireShark 我总是看到与我选择的源端口不同的源端口。然后我发现我通过使用Fiddler2 Web Debugger隐式使用了代理。关闭 Fiddler 后,我开始在 WireShark 中看到我在 Bind 委托中请求的源端口号。

结果是,如果您在任何地方都有代理,您可能会看到同样的行为。

于 2013-03-01T11:24:00.023 回答