12

根据我在尝试解决问题时的研究,事实证明 .Net WebProxy 类不支持 Socks 代理 - 有点烦人。我似乎也找不到任何代码或信息来解释如何通过一个可以轻松与 HttpWebRequest (确切地说是 Proxy 属性)一起使用的类来实现 Socks 4/5 支持。

我通过谷歌找到了关于如何做到这一点的有限信息。一个建议涉及更改 Internet Explorer 代理设置——我不想这样做。

有谁知道可以完成这项工作的任何事情或有任何建议吗?任何帮助将非常感激。

4

4 回答 4

3

我尝试了许多声称支持 Socks4/5 的 .Net 库,但发现其中许多库无法正常工作,或者尝试连接到我知道正在运行的代理时会出错。

我最终使用了Chilkat Software 的 Sock/SSL 组件,即使我必须手动构建 HTTP 请求而不是像我希望的那样使用 HttpWebRequest,它似乎也很适合我。

  • 更新说明:Chilkat.Http(类似于 HttpWebRequest 类)本身就支持 SOCKS 代理。所以不要像我一样花时间尝试编写自己的 HTTP 请求;只需使用Chilkat.Http.SocksHostname,Chilkat.Http.SocksPortChilkat.Http.SocksVersion属性。
于 2010-10-25T17:22:05.657 回答
2

更改 IE 的代理设置对您毫无帮助——另一位发帖人只是观察到它适用于 IE。因为 .NET Framework 不支持 SOCKS,所以您必须编写自己的 CERN-Proxy 到 SOCKS-Proxy 转换器,这样 .NET 才能与 CERN 代理(它支持的类型)对话,而您的代码会将其转换为SOCKS 代理调用。

FWIW,这是我目前希望添加到 FiddlerCore (www.fiddler2.com/core) 的内容,因为我已经拥有几乎所有的代码。我唯一真正需要的是一个 SOCKSv4a 代理来测试。

于 2010-10-04T13:40:30.543 回答
0

从 .NET 6 开始,socks 代理可以与HttpClient. 在 GitHub 上查看问题。

于 2021-09-19T17:40:45.130 回答
-1

使用Privoxy或相同的方式为您的袜子创建 http 代理网关。

将此添加到主配置以链接 Privoxy 和袜子:

forward-socks5 / proxy_host:port .

还有类似的东西可以直接访问您的本地网络:

forward 192.168.*.*/ . forward 10.*.*.*/ . forward 127.*.*.*/ .

于 2014-10-11T14:57:46.487 回答