C#结合了GeckoFX + Tor.NET库

时间:2016-12-29 09:58:44

标签: c# .net proxy tor geckofx

我正在尝试将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 个答案:

答案 0 :(得分: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

network.proxy.type值为1等同于&#34;手动代理配置&#34;设置。

以下设置将SOCKS代理设置配置为在127.0.0.1:9050使用Tor,DNS解析超过SOCKS(Tor)。

这似乎应该正确配置GeckoFX以使用Tor。

答案 1 :(得分:0)

Tor网络不适用于即时HTTP代理通信。相反,TOR.NET实现了Web代理,默认情况下会侦听端口8182上的连接。

您也可以使用

分配另一个端口
  

client.Proxy.Port = 8042;

请记住,如果更改代理端口,TOR.NET会关闭现有的http侦听器,并创建一个新的侦听器。

因此,您需要配置Gecko,以在localhost上使用此Web代理。