一尘不染

Express.js:如何获取远程客户端地址

node.js

我不完全了解如何获取远程用户IP地址。

假设我有一个简单的请求路由,例如:

app.get(/, function (req, res){
   var forwardedIpsStr = req.header('x-forwarded-for');
   var IP = '';

   if (forwardedIpsStr) {
      IP = forwardedIps = forwardedIpsStr.split(',')[0];  
   }
});

以上方法是正确的以获得真实用户IP地址还是有更好的方法?代理呢?


阅读 305

收藏
2020-07-07

共1个答案

一尘不染

如果您是在像NGiNX这样的代理服务器上运行或者只有什么,那么您应该检查’x-forwarded-for’:

var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;

如果代理不是“您的”,那么我将不信任“ x-forward-for”标头,因为它可能是被欺骗的。

2020-07-07