用于HttpWebRequest的Socks代理

时间:2010-10-04 13:37:06

标签: .net proxy httpwebrequest socks

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

我通过谷歌发现了有限的信息,我怎么能这样做。 One suggestion涉及更改Internet Explorer代理设置 - 我宁愿不这样做。

有谁知道任何可以做这项工作或有任何建议的事情?任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:3)

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

我最终使用了Chilkat Software's Sock/SSL component这似乎对我很有用,即使我必须手动构建HTTP请求而不是像我希望的那样使用HttpWebRequest。

  • 更新说明:Chilkat.Http(类似于HttpWebRequest类)本身就支持SOCKS代理。因此,不要像我一样花时间尝试编写自己的HTTP请求;只需使用Chilkat.Http.SocksHostnameChilkat.Http.SocksPortChilkat.Http.SocksVersion属性。

答案 1 :(得分:2)

改变IE的代理设置对你没有任何帮助 - 另一张海报只是观察它适用于IE。由于.NET Framework不支持SOCKS,因此您必须将自己的CERN-Proxy编写到SOCKS-Proxy转换器,以便.NET与CERN代理(它支持的类型)进行通信,并且您的代码将其转换为SOCKS代理电话。

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

答案 2 :(得分:-1)

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

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

forward-socks5 / proxy_host:port .

这样可以直接访问您的本地网络:

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