我有一個用nodejs編寫的小型服務器腳本,我想獲取客戶端IP,但我似乎還找不到我的方式。獲取連接的客戶端IP連接包的連接
我使用Connect包來創建我的服務器。
是否有人知道如何使用的的NodeJS連接包來獲得IP地址。
我也檢查這裏的文檔:http://www.senchalabs.org/connect/但我沒有找到它,可能是我錯過了一些東西。
我有一個用nodejs編寫的小型服務器腳本,我想獲取客戶端IP,但我似乎還找不到我的方式。獲取連接的客戶端IP連接包的連接
我使用Connect包來創建我的服務器。
是否有人知道如何使用的的NodeJS連接包來獲得IP地址。
我也檢查這裏的文檔:http://www.senchalabs.org/connect/但我沒有找到它,可能是我錯過了一些東西。
我解決了使用我的問題:
var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress ||
req.socket.remoteAddress || req.connection.socket.remoteAddress;
,我得到這個從這樣的回答: https://stackoverflow.com/a/19524949/1358670
你可能無法直接連接時(而不是從一個代理),而是自己嘗試。我把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']