node.js从http请求对象获取客户端IP

时间:2013-06-25 22:04:11

标签: javascript node.js

如何从http req对象获取客户端IP地址?

IE:

   var util = require('util'),
    colors = require('colors'),
    http = require('http'),
    httpProxy = require('../../lib/node-http-proxy');

//
// Http Server with proxyRequest Handler and Latency
//
var proxy = new httpProxy.RoutingProxy();
http.createServer(function (req, res) {
  // GET IP address here
  // var ip = ??
  var buffer = httpProxy.buffer(req);
  setTimeout(function () {
    proxy.proxyRequest(req, res, {
      port: 9000,
      host: 'localhost',
      buffer: buffer
    });
  }, 200);
}).listen(8004);

3 个答案:

答案 0 :(得分:7)

应该是req.connection.remoteAddress

答案 1 :(得分:5)

这通常是获取客户端IP地址的正确位置,但并非总是如此。如果您在node.js前使用Nginx,Apache或其他反向代理,则可能必须从req.headers获取IP地址。具有远程IP地址的标头的通用名称包括“X-Remote-IP”或“X-Originating-IP”,但不同的服务器使用不同的标头名称。

答案 2 :(得分:0)

应该只是req.connection.remoteAddress或req.ip