node.js - 获取远程 IP 地址在 Node 上不起作用

标签 node.js express

我正在尝试使用 Express 从传入连接获取远程 IP 地址。已经尝试过网上找到的常见解决方案:

  1. req.headers['x-forwarded-for']/结果:始终未定义
  2. req.socket.remoteAddress/结果:始终获取网关 IP(IE:192.168.1.1)而不是外部地址。

有什么线索吗?

最佳答案

您是否通过在您自己的计算机上的虚拟机中运行应用程序来对此进行测试?如果是这样,您就得到了正确的答案。 X-Forwarded-For 是空的,因为没有代理,并且您会看到虚拟机用于路由出去的主机上的虚拟接口(interface)。这是请求来源的 IP。

关于node.js - 获取远程 IP 地址在 Node 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10799346/

相关文章:

node.js - MongoParseError : URI does not have hostname, 域名和tld

javascript - 为 Firebase DB 设置安全性的正确方法

javascript - 使用 system.js 导入 socket.io

node.js - 在node.js中使用http.request时出错

node.js - 从 React 到 Node.js 的 POST 请求

javascript - JavaScript 中的组映射

javascript - 如何在 Node.js CLI 中禁用快速日志?

node.js - 使用 Node 表达和套接字防止新选项卡中的新连接

javascript - RethinkDB - 一个接一个地运行查询

node.js - express/connect 中间件的控制顺序