如何使用express 4.x

时间:2015-05-26 15:31:25

标签: node.js express

我想获取客户端的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。这可以做到吗?

2 个答案:

答案 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);