如何获得使用Express 4.x的IP客户端

我想获得客户端的IP,我正在尝试本地主机(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 。 这可以做到?

::1localhost的IPv6等价物。 如果您只想让服务器侦听IPv4并因此只从客户端获得IPv4地址, app.listen()可以在app.listen()指定IPv4地址:

 app.listen(3000, '127.0.0.1'); 

在NodeJS中获取客户端IP地址非常简单:

  var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress || req.socket.remoteAddress || req.connection.socket.remoteAddress; console.log(ip);