nodejs node example http node.js proxy tor

example - Haciendo peticiones http a través de un proxy SOCKS5 en NodeJS



request nodejs github (6)

Estoy planeando hacer una serie de solicitudes HTTP en NodeJS aunque Tor.
Tor usa SOCKS5, así que salí y busqué una forma de verificar las solicitudes HTTP en NodeJS.
Estoy planeando la función http.request () predeterminada para hacer el trabajo.
Sin embargo, parece que no puedo encontrar una manera de usar un proxy con eso.
Alguien sugirió que yo podría hacer esto:

var http = require("http"); var options = { host: "localhost", port: 9050, path: "http://check.torproject.org", method: ''GET'', headers: { Host: "http://check.torproject.org", } }; var req = http.request(options, function(res) { res.on(''data'', function (chunk) { console.log(''BODY: '' + chunk); }); });

Pero no funcionó.
Entonces, ¿alguna sugerencia?


Acabo de publicar dos módulos que deberían ayudarte a hacer esto: socks5-http-client y socks5-https-client .

Solo usa esos en lugar del módulo http predeterminado. La API es la misma. Por ejemplo:

require(''socks5-http-client'').request(options, function(res) { console.log(''STATUS: '' + res.statusCode); console.log(''HEADERS: '' + JSON.stringify(res.headers)); res.setEncoding(''utf8''); res.on(''data'', function (chunk) { console.log(''BODY: '' + chunk); }); });



No es una respuesta completa, pero es posible que desee vigilar estos dos módulos.

https://github.com/Ayms/node-Tor

Se está agregando soporte en: https://github.com/Ayms/node-bot .

Le envié un correo electrónico preguntándole cuándo esperaba que se completara, actualizaré esta publicación pronto con esa información.


Sé que estoy respondiendo una pregunta anterior, pero hay una mejor solución disponible para esta pregunta, sobre cómo usar el proxy sock4 y sock5 en Node.js. En aras de la simplicidad, usaré el módulo de solicitud de promesa; sin embargo, también puede usar el módulo de solicitud simple.

Requerimientos: socks-proxy-agent , request-promise

Ejemplo:

async function main() { var proxy = "socks4://1.2.3.4:35618" var agent = new SocksProxyAgent(proxy); var options = { uri: ''http://targetUrl'', agent: agent, headers: { ''User-Agent'': ''Request-Promise'' } } try { var responce = await rp(options) } catch(err) { console.log(err) } console.log(responce) }


Si estás en la máquina * nix, puedes usar tsocks. Se "socksify" todo el proceso para que pueda utilizarlo incluso para cualquier cosa que no es compatible con proxy. Este article tiene algunos grandes ejemplos.

Básicamente es tan fácil como hacer tsocks node myscript.js . No estoy seguro de si funciona con tsocks npm start pero podría intentarlo (npm inicia su código como un subproceso)

Todo lo que necesita es algo de configuración primero (ponga el server = 127.0.0.1 a etc/tsocks.conf )


Tuve el mismo problema y usé polipo como proxy entre el nodo y TOR

node (request) - polilp httproxy:8123 - polipo - tor (socks5:9050).

Para mac (osx con brew ) funcionó así:

brew install polipo tor tor # start top polipo socksParentProxy=localhost:9050 # start polipo

Ejemplo de trabajo con request

var request = require(''request''); var options = {''url'':''https://check.torproject.org/'', ''proxy'':''http://localhost:8123''} request(options, function (error, response, body) { if (error){ console.log(error); return; } var usingTor = (body.indexOf(''Congratulations. This browser is configured to use Tor.'') !== -1); expect(usingTor).to.equal(true); });