Подтвердить что ты не робот

Использование Tor api для создания анонимного прокси-сервера

Я делаю приложение, которое вызывает много вызовов api на каком-то сайте. Проблема, с которой я столкнулся, заключается в том, что на сайте есть ограничение на количество вызовов api, которые могут быть сделаны за минуту. Чтобы обойти это, я надеялся использовать Tor в сочетании с node-http-proxy, чтобы создать прокси-таблицу, которая использует анонимные IP-адреса, взятые из tor api.

Итак, мой вопрос: насколько это возможно, и какие инструменты вы порекомендуете для его выполнения. Мое приложение написано на javascript, поэтому предпочтительнее использовать решения, такие как node-tor.

4b9b3361

Ответ 1

Я нашел разумное решение, используя инструменты командной строки tor и curl через Node.js.

Загрузите инструмент командной строки tor и установите его в $PATH.

Теперь мы можем отправлять запросы через этот локальный прокси-сервер tor, который установит "схему" через сеть TOR. Посмотрите наш IP-адрес, используя http://ifconfig.me. Вы можете скопировать все эти вещи в свой Node REPL:

var cp = require('child_process'),
    exec = cp.exec,
    spawn = cp.spawn,
    tor = spawn('tor'),
    puts = function(err,stdo,stde){ console.log(stdo) },
    child;

После этого вы можете захотеть создать задержку, пока прокси-сервер tor будет создан и настроен.

Затем отпустите сеть TOR и спросите http://ifconfig.me, какой IP-адрес обращается к ней.

function sayIP(){
  child = exec('curl --proxy socks5h://localhost:9050 http://ifconfig.me',puts);
}

sayIP();

Если вам нужен новый IP-адрес, перезапустите tor, выключив его, а затем, кажется, самый надежный метод:

function restartTor(){
  tor.kill('SIGINT');
  tor = spawn('tor');
}

restartTor();

Примечание.. Еще один способ, с которым я видел, - это описание нового IP-адреса (создание новой "схемы" ), но похоже, что он работает примерно на 10% время в моих тестах. Если вы хотите попробовать:

Найдите и скопируйте torrc.sample в torrc, затем измените torrc следующим образом:

  • Uncomment ControlPort 9051 (9050 - это локальный прокси, открытие 9051 позволяет нам управлять им)
  • Раскомментировать и установить CookieAuthentication 0.
  • Uncomment HashedControlPassword и установите для результата:

    $ tor --hash-password "your_password"

Затем вы можете использовать такую ​​функцию, чтобы отправить сигнал NEWNYM на ваш локальный прокси-сервер tor, чтобы попытаться получить новый IP-адрес без перезагрузки.

function newIP(){
  var signal = 'echo -e "AUTHENTICATE \"your_password\"\r\nsignal NEWNYM\r\nQUIT" | nc -v 127.0.0.1 9051';
  child = exec(signal,puts);
}

newIP();