C#, объединяющий библиотеки GeckoFX + Tor.NET

Я пытаюсь объединить библиотеку 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 должен быть как на левом контроле. Вы можете загрузить и протестировать полный проект с здесь. Это проект 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. Спасибо.


person ovasylenko    schedule 29.12.2016    source источник


Ответы (2)


Вы установили какие-либо из настроек Firefox в своем коде перед инициализацией браузера?

Пытаться:

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 для использования Tor по адресу 127.0.0.1:9050 с разрешением DNS через SOCKS (Tor).

Похоже, это должно правильно настроить GeckoFX для использования Tor.

person drew010    schedule 07.01.2017

Сеть Tor не предназначена для немедленной связи HTTP-прокси. Вместо этого TOR.NET реализует веб-прокси, который по умолчанию прослушивает соединения на порту 8182.

Также вы можете назначить другой порт с помощью

клиент.Прокси.Порт = 8042;

Имейте в виду, что если вы измените порт прокси, TOR.NET отключит существующий прослушиватель http и создаст новый.

Итак, вам нужно настроить Gecko, чтобы использовать этот веб-прокси на локальном хосте.

person Yury Glushkov    schedule 07.01.2017