如何在使用ngrok隧道时获取请求的真实客户端IP?

9

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

由于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));

到目前为止,所有的输出要么是打印 undefined 要么是 127.0.0.1。这意味着我需要以某种方式配置ngrok。


我今天向ngrok支持提出了同样的问题。让我们看看他们会说什么。 - Scott C
1个回答

6

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

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

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

谢谢您。这真的很有帮助。 - rocksyne

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接