SOCKS v5 HTTP client implementation in JavaScript for Node.js.
var shttp = require('socks5-http-client');
shttp.get('http://www.google.com/', function(res) {
res.setEncoding('utf8');
res.on('readable', function() {
console.log(res.read()); // Log response to console.
});
});
URLs are parsed using url.parse
. You may also pass an options hash as the first argument to get
or request
.
Specify the socksHost
and socksPort
options if your SOCKS server isn't running on localhost:1080
. Tor runs its SOCKS server on port 9050
by default, for example.
Specify a username and password using socksUsername
and socksPassword
.
Works great for making HTTPS requests through Tor.
Make sure a Tor server is running locally and run node example/tor http://en.wikipedia.org/wiki/SOCKS
to test.
To use with Request, just pass a reference to the Agent
constructor.
var Agent = require('socks5-http-client/lib/Agent');
request({
url: 'http://en.wikipedia.org/wiki/SOCKS',
agentClass: Agent,
agentOptions: {
socksHost: 'my-tor-proxy-host', // Defaults to 'localhost'.
socksPort: 9050 // Defaults to 1080.
}
}, function(err, res) {
console.log(err || res.body);
});
This client only provides support for making HTTP requests. See socks5-https-client for an HTTPS implementation.
Copyright © 2013 Matthew Caruana Galizia, licensed under an MIT license.