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

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

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

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

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

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

Mandy猿2020/03/23 09:18:26

我知道这个问题已经回答了,但是这就是我的工作方式。

let ip = req.connection.remoteAddress.split(`:`).pop();
神无2020/03/23 09:18:26

根据Express在代理之后req.ip如果配置trust proxy正确则考虑了反向代理因此,它比req.connection.remoteAddress从网络层获得并且不了解代理更好