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

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

这是我的代码:

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; }); 

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

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

在nginx.conf文件中:

 proxy_set_header X-Real-IP $remote_addr; 

你有没有尝试req.ip

req.ip

包含请求的远程IP地址。

当信任代理设置不计算为false时,此属性的值将从X-Forwarded-For头中最左边的条目派生。 这个头可以由客户端或代理来设置。

req.ip和req.ips值将填入来自X-Forwarded-For的地址列表

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

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

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

有关更多信息,请参阅“信任代理”设置选项和代理后面的“expression式 ”