2014-03-31 124 views

回答

0

我解决了使用我的问题:

var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress || 
    req.socket.remoteAddress || req.connection.socket.remoteAddress; 

,我得到这个从这样的回答: https://stackoverflow.com/a/19524949/1358670

1

你可能无法直接连接时(而不是从一个代理),而是自己尝试。我把Hello World示例从连接的自述和刚打印出请求对象的内容:

var connect = require('connect') 
    , http = require('http'); 
    , util = require('util'); 

var app = connect() 
    .use(function(req, res){ 
    console.log(util.inspect(req)); 
    res.end('Hello from Connect!\n'); 
    }); 

http.createServer(app).listen(3000); 

在这里你不会找到任何客户端的IP。

但无论如何,不​​应该的node.js服务直接连接,但以正代理,负载平衡器左右。

当使用Apache的的ProxyPass你会发现头中的客户端的原始IP地址,寻找

req.headers['X-Forwarded-For']