【问题标题】:private and public ip using AWS api gateway + lambda + Nodejs使用 AWS api 网关 + lambda + Nodejs 的私有和公共 ip
【发布时间】:2019-05-11 01:58:21
【问题描述】:

我正在尝试在 AWS 环境中获取用户的私有 IP 和公共 IP。基于这个答案 (https://stackoverflow.com/a/46021715/4283738) 应该有一个标题 X-Forwarded-For ,分隔的 ips 以及来自论坛 (https://forums.aws.amazon.com/thread.jspa?threadID=200198)

但是当我通过 API Gateway + lambda + nodejs v8 部署我的 api 时。我已经为用于调试的 nodejs 处理程序函数参数 (https://y0gh8upq9d.execute-api.ap-south-1.amazonaws.com/prod) 排除了事件和上下文变量的 JSON 我没有得到私有 ips。

lambda 函数是

const AWS = require('aws-sdk');
exports.handler = function(event, context, callback){
    callback(null, {
        "statusCode": 200,
        "body": JSON.stringify({event,context})
    });
}

API 网关详细信息

GET - 集成请求

集成类型——Lambda函数

使用 Lambda 代理集成 -- 是的

函数API:https://y0gh8upq9d.execute-api.ap-south-1.amazonaws.com/prod

【问题讨论】:

    标签: node.js amazon-web-services aws-lambda aws-api-gateway


    【解决方案1】:

    Case-1 : 出于安全原因无法获取用户的私有IP(如果由用户配置,则通过NAT或PAT(屏幕后面的网络地址转换或端口地址转换)完成。NAT将添加这个 ip 在他的表中,并使用公共 id 提前发送请求,或者可以说 router-id)。

    案例 2:如果这里您的私有 IP 是指多个用户使用同一个公共网络(WIFI 等)。然后你可以再次定义两个 IP,一个是公共的,对所有人来说都是通用的,但是在公共网络内部,它们还有另一个在公共网络内部唯一的 ip。

    例如:假设有公共IP(1.1.1.1)的WIFI。它有两个用户 A 和 B。值得注意的是,由于他们共享同一个 WIFI,所以路由器将只有一个 IP(公共和公共),但在这个路由器内部,A 和 B 将有不同的 IP,例如 192.1.1.1 和192.1.1.2,可以称为私有。

    在这两种情况下,您都只会获得公共 IP(在 X-Forwarded-For 标头中的位置 0)。

    您可以在里面获取 X-Forwarded-For 标头 event.headers.multiValueHeaders.

    如果您可以同时访问两者,那么拥有私有和公共 ip 有什么好处?

    要访问 AWS VPC 私有子网,您还必须使用 NAT,出于安全原因,客户端永远不会知道实际 IP。我要求您再次重新审核您的要求。

    【讨论】:

      【解决方案2】:

      不知道是什么让你卡在这里,如果我错了,请纠正我。 来自Wiki

      X-Forwarded-For (XFF) HTTP 标头字段是识别通过 HTTP 代理或负载平衡器连接到 Web 服务器的客户端的原始 IP 地址的常用方法。

      我在标题中设置了 X-Forwarded-For 并使用 Postman 进行测试: https://imgur.com/a/8QZEdyH

      【讨论】:

      • 这是您手动设置的。我需要的客户端 ip 大多像 192.168.0.100 这样不是你的本地主机 ip 或任何其他手动设置我想跟踪计算机的局域网 ip。基于这篇文章forums.aws.amazon.com/thread.jspa?threadID=200198
      【解决方案3】:

      “X-Forwarded-For”标头显示用户的公共 ip。

      这就是你所得到的。

      内部 IP 不可见。

      只有标头中指明的“公共 ip”。

      【讨论】:

        猜你喜欢
        • 2017-10-09
        • 2019-07-09
        • 2017-01-24
        • 2020-09-16
        • 2017-11-13
        • 2020-06-25
        • 1970-01-01
        • 2019-05-02
        相关资源
        最近更新 更多