2016-12-29 57 views
2

我想結合GeckoFx庫和Tor.NET庫。C#結合GeckoFX + Tor.NET庫

在我的代碼我做的所有準備使用Tor網絡,

ClientCreateParams createParameters = new ClientCreateParams(); 
createParameters.ConfigurationFile = ConfigurationManager.AppSettings["torConfigurationFile"]; 
createParameters.ControlPassword = ConfigurationManager.AppSettings["torControlPassword"]; 
createParameters.ControlPort = Convert.ToInt32(ConfigurationManager.AppSettings["torControlPort"]); 
createParameters.DefaultConfigurationFile = ConfigurationManager.AppSettings["torDefaultConfigurationFile"]; 
createParameters.Path = Path.Combine(root, ConfigurationManager.AppSettings["torPath"]); 

createParameters.SetConfig(ConfigurationNames.AvoidDiskWrites, true); 
createParameters.SetConfig(ConfigurationNames.GeoIPFile, Path.Combine(root, @"Tor\Data\Tor\geoip")); 
createParameters.SetConfig(ConfigurationNames.GeoIPv6File, Path.Combine(root, @"Tor\Data\Tor\geoip6")); 

client = Client.Create(createParameters); 


    <appSettings> 
    <add key="torConfigurationFile" value=""/> 
    <add key="torControlPassword" value=""/> 
    <add key="torControlPort" value="9051"/> 
    <add key="torDefaultConfigurationFile" value=""/> 
    <add key="torPath" value="Tor\Tor\tor.exe"/> 
</appSettings> 

WebBrowser1是簡單的瀏覽器,並將其與Tor的設置工作。 但瀏覽器是GeckoFx,它不起作用。

webBrowser1.Navigate("https://duckduckgo.com/?q=my+ip&t=h_&ia=answer"); 
browser.Navigate("https://duckduckgo.com/?q=my+ip&t=h_&ia=answer"); 

this正如你所看到的IP應該是在左側的控制。 您可以從here下載並測試完整的項目。 WinForms項目只是從解決方案中運行「Gecko」項目。 任何想法如何設置GeckoFx使用Tor網絡? 或者我可能需要設置GeckoFx來使用代理?

 //GeckoPreferences.User["network.proxy.type"] = 1; 
     //GeckoPreferences.User["network.proxy.socks"] = "127.0.0.1"; 
     //GeckoPreferences.User["network.proxy.socks_port"] = 9150; 
     //GeckoPreferences.User["network.proxy.socks_version"] = 5; 
     //GeckoPreferences.User["network.proxy.socks_remote_dns"] = true; 

VisualStudio 2015. 謝謝。

回答

2

在初始化瀏覽器之前,您是否在代碼中設置了Firefox Preferences中的任何一個?

嘗試:

GeckoPreferences.Default["network.proxy.type"] = 1; 
GeckoPreferences.Default["network.proxy.socks = "127.0.0.1" 
GeckoPreferences.Default["network.proxy.socks_port"] = 9050 
GeckoPreferences.Default["network.proxy.socks_remote_dns"] = 1 
GeckoPreferences.Default["network.proxy.socks_version"] = 5 

的1 network.proxy.type值等同於 「手動配置代理」 設置。

以下設置將SOCKS代理設置配置爲在127.0.0.1:9050處使用Tor,且DNS分辨率高於SOCKS(Tor)。

這似乎應該正確配置GeckoFX使用Tor。

0

Tor網絡不適用於即時HTTP代理通信。相反,TOR.NET實現了web代理,默認情況下它在端口8182上偵聽連接。

而且可以分配與

client.Proxy.Port = 8042另一端口;

請記住,如果您更改代理端口,TOR.NET將關閉現有的http偵聽器,並創建一個新的。

因此,您需要配置Gecko,以在本地主機上使用此Web代理。