如何在node.js中获取IP地址

时间:2017-09-19 08:34:51

标签: node.js express

我们如何从node.js获取IP地址我尝试了很多方法,但它没有工作并返回:: ffff:127.0.0.1请给我一些建议

这是我的代码:

app.put('/update-user-info', function(req, res){
  // it's doesn't work and return ::ffff:127.0.0.1
  var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress ||  req.socket.remoteAddress || req.connection.socket.remoteAddress; 
});

2 个答案:

答案 0 :(得分:3)

您是否尝试req.ip

req.ip

  

包含请求的远程IP地址。

     

当信任代理设置未评估为false时,值为   此属性派生自最左侧的条目   X-Forwarded-For标题。此标头可以由客户端或通过   代理。

req.ip和req.ips值填充了X-Forwarded-For

的地址列表

请参阅Express 4.x API (About req.ip)

如果您使用的是代理,则需要一个名为trust_proxy的特殊应用程序设置(默认为false)

注意:X-Forwarded- *标头很容易被欺骗,检测到的IP地址也不可靠。

有关详细信息,请参阅Options for 'trust proxy' settingExpress behind proxies

答案 1 :(得分:2)

正如GuroKing所说,我将再补充一点。

- sudo npm install

在nginx.conf文件中:

Add app.set('trust proxy', true)