constgot=require("got");constspawn=require("cross-spawn");const{SocksProxyAgent}=require("socks-proxy-agent");// Launch a TOR proxy via Docker// @see https://github.com/osminogin/docker-tor-simpleconstproxy=spawn("docker",[...["run","--rm","-i","-a","stdout"],...["-p","127.0.0.1:9050:9050/tcp"],...["osminogin/tor-simple:latest"],]);// Wait until the socks5 proxy server is up and runningproxy.stdout.on("data",(data)=>{process.stderr.write(data);if(data.toString().includes("Opened Socks listener")){run().finally(()=>proxy.kill("SIGINT"));}});// Configure an HTTP client using socks5 proxyconstclient=got.extend({agent:{https:newSocksProxyAgent("socks5://localhost:9050"),},});// TODO: Write some code that requires a proxyasyncfunctionrun(){constbody=awaitclient.get("https://jsonip.com/").json();console.log("Client IP:",body.ip);}
Top comments (0)