我有一个用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']