当前位置: 首页 > 面试题库 >

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

姚海
2023-03-14
问题内容

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

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

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

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

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


问题答案:

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

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

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



 类似资料:
  • 我不完全理解如何获得远程用户IP地址。 假设我有一个简单的请求路由,例如: 上面的方法是正确的,还是有更好的方法来获得真正的用户IP地址?代理呢?

  • get_client_ip($type = 0, $adv = false) 功能 获取客户端IP地址 参数 $type: string 返回类型 0 返回IP地址 1 返回IPV4地址数字 $adv: boolean 是否进行高级模式获取(有可能被伪装) 返回 string 客户端IP地址

  • 问题内容: 我已经在项目中编写了Rest Web服务.Web服务调用可能来自其他计算机。因此我需要通过REST Web服务来查找IP地址。 通过此链接 request.getRemoteAddr() 来使用它。 但是我不能使用getRemoteAddr()。因为我的请求和响应都是xml格式。 我在REST服务.Tomcat服务器中使用了post方法。我已将请求发送为xml格式。 我如何获得IP地址

  • get_client_ip($type = 0, $adv = false) 功能 获取客户端IP地址 参数 $type: string 返回类型 0 返回IP地址 1 返回IPV4地址数字 $adv: boolean 是否进行高级模式获取(有可能被伪装) 返回 string 客户端IP地址

  • 问题内容: 我正在尝试开发一个Java Web应用程序(Servlet),该服务器需要获取客户端IP地址。 以下是我到目前为止的代码: 在大多数情况下,我会得到“默认网关地址”(147.120.1.5)。不是我的机器IP地址(174.120.100.17)。 在大多数情况下,我会得到“默认网关地址”(147.120.1.5)。不是我的机器IP地址(174.120.100.17)。 在这种情况下,我

  • 问题内容: 我正在尝试在Laravel中获取客户端的IP地址。 使用可以很容易地在PHP中获得客户端的IP 。在核心PHP中它可以正常工作,但是当我在Laravel中使用相同的东西时,它将返回服务器IP而不是访问者的IP。 问题答案: 查看Laravel API: 在内部,它使用Symfony Request对象中的方法: