开发者社区 > 云原生 > Serverless > 正文

函数计算中,请问 使用docker镜像部署的web服务怎么获取客户端的真实ip?

函数计算中,请问 使用docker镜像部署的web服务怎么获取客户端的真实ip ,我发现所有用户的ip都是21.0.0.1Pe

展开
收起
多麻辣哦 2024-01-03 16:48:09 55 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在函数计算中,使用Docker镜像部署的Web服务可以通过以下方法获取客户端的真实IP:

    1. 通过环境变量获取:您可以在Dockerfile中设置一个环境变量来存储客户端的真实IP。例如,在Dockerfile中添加以下行:

      ENV CLIENT_IP=$(curl -s ifconfig.me)
      

      这将从ifconfig.me获取客户端的真实IP,并将其存储在名为CLIENT_IP的环境变量中。然后,您可以在Web服务的代码中使用该环境变量来获取客户端的IP地址。

    2. 通过HTTP请求头获取:另一种方法是检查HTTP请求头中的X-Forwarded-For字段。当客户端通过代理服务器发送请求时,代理服务器通常会将客户端的真实IP地址添加到X-Forwarded-For字段中。您可以在Web服务的代码中检查该字段并提取客户端的IP地址。以下是一个示例代码片段(使用Python Flask框架):

      from flask import request
      
      client_ip = request.headers.get('X-Forwarded-For')
      if not client_ip:
          client_ip = request.remote_addr
      

      上述代码首先尝试从X-Forwarded-For字段中获取客户端的IP地址。如果该字段不存在或为空,则使用request.remote_addr获取客户端的IP地址。请注意,这可能不是真实IP地址,而是客户端与代理服务器之间的连接IP地址。

    2024-01-03 21:36:19
    赞同 展开评论 打赏
  • 打印请求头
    iwEcAqNwbmcDAQTRAVsFNwawnu2GHacG7yQFfqB9PCpXAAfSCcHilQgACaJpbQoAC9EGjA.png_720x720q90.jpg
    此回答来自钉群阿里函数计算官网客户。

    2024-01-03 18:01:37
    赞同 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 相关电子书

    更多
    All in Serverless 阿里云核心产品全面升级 立即下载
    AIGC 浪潮之上,森马的 Serverless 实践之旅 立即下载
    极氪大数据 Serverless 应用实践 立即下载