【问题标题】:How to get the real client ip for a request when tunneling with ngrok使用 ngrok 建立隧道时如何获取请求的真实客户端 IP
【发布时间】:2016-10-06 17:46:52
【问题描述】:

如何确保客户端 IP 地址是由 ngrok 转发的?

由于 ngrok,我的测试代码一直坚持认为所有请求都来自 127.0.0.1,但我想记录实际的客户端 IP。负载均衡器通常在 X-Forwarded-For 或 x-real-ip 中设置标头,但我不确定 ngrok 的过程是什么......

  console.log('req.headers[\'x-real-ip\']', req.headers['x-real-ip']);
  console.log('req.headers[\'X-Forwarded-For\']', req.headers['X-Forwarded-For']);
  console.log('req.ip', req.ip );
  console.log('req.connection.remoteAddress', req.connection.remoteAddress);
  console.log('req.connection.remoteAddress', req.connection.remoteAddress);
  console.log('req.socket.remoteAddress', (req.socket && req.socket.remoteAddress));
  console.log('req.socket.socket.remoteAddress', (req.socket.socket && req.socket.socket.remoteAddress));

到目前为止,所有内容都打印undefined127.0.0.1。这意味着我需要以某种方式配置 ngrok。

【问题讨论】:

  • 我今天问 ngrok 支持同样的问题。让我们看看他们怎么说。

标签: ngrok


【解决方案1】:

不幸的是,Node.JS 中的所有标头名称都是小写的。使用

req.headers['x-forwarded-for']

而不是

req.headers['X-Forwarded-For']

【讨论】:

  • 谢谢你。真的很有帮助
猜你喜欢
  • 1970-01-01
  • 2012-07-22
  • 2020-09-23
  • 2011-03-07
  • 2020-05-22
  • 1970-01-01
  • 2012-08-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多