从Node.js中的不同IP发送HTTP请求

时间:2013-11-29 22:30:10

标签: javascript node.js tor http-request

有没有办法使用与Node.js中的IP不同的IP发送HTTP请求?

我想从之前选择的IP发送请求,而不是从服务器的IP或计算机的IP发送请求。

我知道Tor Project会进行这种操作,但是我找不到Tor用来做这些东西的库。

Tor是否使用任何API或Node.js模块来处理Node.js中的这种私人浏览?

1 个答案:

答案 0 :(得分:14)

在节点http模块中,有一个localAddress选项用于绑定到特定的网络接口。

var http = require('http');

var options = {
  hostname: 'www.example.com',
  localAddress: '202.1.1.1'
};

var req = http.request(options, function(res) {
  res.on('data', function (chunk) {
    console.log(chunk.toString());
  });
});

在Github上查看Mikeal's Request

Tor使用SOCKS5,这两个模块可以提供帮助:socks5-http-clientsocks5-https-client

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);
  });
});

另一种选择是使用免费的网络代理,例如隐藏我的屁股web proxy。它们还提供了您可以使用的ip:port proxies列表。 http,https甚至是SOCKS4 / 5。使用上述模块或只是将Web浏览器配置为使用其中一个模块。

您甚至可以设置自己的私有http代理节点应用程序并在Heroku上部署。我在谷歌上发现了很多易于理解的例子。