我想获取客户端的IP,我正在尝试使用localhost (127.0.0.1 )
,但我总是得到:: 1
我正在尝试使用
app.enable('trust proxy');
app.set('trust proxy', 'loopback');
app.get('/',function(req,res){
res.send(req.ip); //I always get :: 1
// or
var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
res.send(ip);//I always get :: 1
});
如何获得127.0.0.1
而不是:: 1
。这可以做到吗?
答案 0 :(得分:17)
::1
是等效于localhost
的IPv6。如果您只想让服务器通过IPv4监听,因此只有来自客户端的IPv4地址,您可以在app.listen()
中指定IPv4地址:
app.listen(3000, '127.0.0.1');
答案 1 :(得分:3)
在NodeJS中获取客户端IP地址非常简单:
var ip = req.headers['x-forwarded-for'] ||
req.connection.remoteAddress ||
req.socket.remoteAddress ||
req.connection.socket.remoteAddress;
console.log(ip);