2014-03-31 43 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']