【发布时间】: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