C# 结合 GeckoFX + Tor.NET 库

标签 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。 谢谢。

最佳答案

您是否设置了 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 相当于“手动代理配置”设置。

以下设置将 SOCKS 代理设置配置为使用位于 127.0.0.1:9050 的 Tor,并通过 SOCKS (Tor) 进行 DNS 解析。

看来这应该正确配置 GeckoFX 以使用 Tor。

关于C# 结合 GeckoFX + Tor.NET 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41377272/

相关文章:

c# - 如何在 asp.net mvc 中正确检测用户浏览器文化

java - 一致的跨平台 (java .Net) PseudoRandom 生成器,如果种子相同

c# - 如何在 .NET 中完全摆脱 View 状态

Javascript 知道对象值何时被修改

silverlight - Silverlight 如何处理 Internet 连接的代理?

c# - AspNet Core 1.0.0中如何获取IOwinContext

c# - 将数据集保存到数据库

c# - 如何检查类属性是否包含某些内容?

.net - 在AppDomain中终止任何托管线程时,可以调用任意代码吗?

proxy - 使用 Fiddler 连接带有授权的 HTTP 代理