【问题标题】:nodejs http2 request - where can I find the clients ip addressnodejs http2请求 - 我在哪里可以找到客户端的IP地址
【发布时间】:2016-04-03 15:23:02
【问题描述】:

我正在使用 Polymer 构建复杂的 SPA 来复制 Access 应用程序。我想使用 http2 来避免合并源文件以获得适当性能的维护噩梦。

我已经建立了自己的应用程序的启动,通过 sql server 数据库登录。现在开始调试。

我正在尝试使用我在此处找到的答案检索客户端 IP 地址

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

但不幸的是,此时服务器崩溃了。使用调试器进行挖掘(给定 req 是请求对象)没有“x-forwarded-for”标头,没有连接对象(套接字内部除外),这就是无法访问未定义的 remoteAddress 的原因。但是我在从 req 派生的任何对象中都找不到 remoteaddress 字段。

我正在使用https://github.com/molnarg/node-http2,这似乎是唯一的实现。文档中提到了 endpoint.js 库,但链接已损坏,所以我不知道如何访问端点对象。

为了获得正确的证书,我使用了来自 pastrial.hartley-consultants.com 的证书,并更改了我的内部 dns 服务器,将我的开发机器作为其 IP 地址。我通过同一台机器上的浏览器访问它。所以客户端和服务器机器都应该有 192.168.0.xx IP 地址,它们恰好是相同的。

所以问题是 - 暴露给服务器的客户端 IP 地址在哪里(或者确实在 http2 中)

【问题讨论】:

  • 不确定,但您是否尝试过检查 req.headers['x-real-ip'] ?
  • 唯一的头元素是accept、accept-encoding、accept-language、cookie、host、upgrade-insecure-requests和user-agent

标签: node.js http2


【解决方案1】:

简单的答案是在req.remoteAddress

【讨论】:

  • 有时。但有时它是空的。
猜你喜欢
  • 2018-08-21
  • 2021-11-04
  • 2020-09-28
  • 2014-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多