2010-10-04 158 views
10

根據我的研究,雖然試圖解決this問題,事實證明,.Net WebProxy類不支持Socks代理 - 有點煩人。我似乎也找不到任何代碼或信息解釋瞭如何通過一個可以很容易地與HttpWebRequest(Proxy屬性,確切地說)一起使用的類來實現Socks 4/5支持。襪子代理HttpWebRequest

我發現有限的信息通過谷歌我怎麼能做到這一點。 One suggestion涉及更改Internet Explorer代理設置 - 我寧願不這樣做。

有沒有人知道任何可以做這項工作或有任何建議?任何幫助將非常感激。

回答

3

我嘗試了很多宣稱支持Socks4/5的.Net庫,但發現其中很多隻是沒有工作,或者會嘗試連接到我知道正在運行的代理服務器上的錯誤。

我已經結束了使用Chilkat Software's Sock/SSL component這似乎對我很好,即使我必須手動構建HTTP請求,而不是像我希望的那樣使用HttpWebRequest。

  • 更新注:Chilkat.Http(類似於HttpWebRequest類)不具有固有的SOCKS代理支持。所以,不要像我一樣花時間嘗試編寫自己的HTTP請求;只需使用Chilkat.Http.SocksHostname,Chilkat.Http.SocksPortChilkat.Http.SocksVersion屬性即可。
+0

奇爾卡特現在確實支持SOCKS。 'Chilkat.Http.SocksVersion','Chilkat.Http.SocksHostname','Chilkat.Http.SocksPort'。配置這些屬性將強制HTTP連接使用SOCKS。奇爾卡特API參考:[鏈接](http://www.chilkatsoft.com/refdoc/csHttpRef.html) – user1111380 2014-07-16 23:24:48

2

更改IE的代理設置根本無法幫到你 - 另一張海報只是觀察它可以用於IE。由於.NET Framework不支持SOCKS,因此您必須將自己的CERN代理編寫到SOCKS代理轉換器,例如.NET與CERN代理(它支持的類型)進行對話,並且您的代碼將其轉換爲SOCKS代理呼叫。

FWIW,這是我目前希望添加到FiddlerCore(www.fiddler2.com/core)的東西,因爲我已經擁有幾乎所有的代碼。我唯一需要的是一個SOCKSv4a代理來測試。

+0

這讓我的建議到那個頁面是改變IE代理,然後使用WebProxy.DefaultProxy屬性 - http://social.msdn.microsoft.com/Forums/en-US/ncl/thread/982bef6c-b9a4-4c0d-b7d5-0c64df9f610a。我感到驚訝的是,我找不到任何類/庫來通過代碼輕鬆實現這一點 - 這似乎是想要做的顯而易見的事情。如果你確實實現了它,那會很棒 - 我會密切關注FiddlerCore項目。 – JoeR 2010-10-04 13:44:37