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

函数计算,http请求怎样获取客户端ip?

函数计算,http请求怎样获取客户端ip?

展开
收起
码字王 2023-09-01 09:47:46 148 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    我已经认真阅读了 你的问题:

    【 函数计算,http请求怎样获取客户端ip?

    并思考了

    建议如下:


    如果您希望通过 HTTP 请求获取客户端的 IP 地址,可以使用以下方法:

    1. 从请求头中获取客户端 IP 地址
      在 HTTP 请求中,客户端的 IP 地址通常会作为一个名为 "X-Forwarded-For" 的请求头字段传递。您可以通过以下方式获取该字段的值:

    from flask import request
    client_ip = request.headers.get('X-Forwarded-For')
    CopyCopy

    需要注意的是,"X-Forwarded-For" 可能会包含多个 IP 地址,这是因为请求可能经过多个代理服务器。在这种情况下,您可以使用以下代码获取第一个 IP 地址:

    client_ip = request.headers.get('X-Forwarded-For').split(',')[0]
    CopyCopy

    1. 如果请求头中没有 "X-Forwarded-For" 字段,您可以从请求的 remote 地址中获取客户端 IP 地址。在这种情况下,您可以使用以下代码:

    from socket import gethostbyname
    client_ip = gethostbyname(request.remote_addr)
    CopyCopy

    请注意,从请求头中获取客户端 IP 地址通常更可靠,因为请求的远程地址可能会受到代理服务器的影响。

    2023-09-01 19:12:18
    赞同 展开评论 打赏
  • 自定义运行时和容器镜像在header里 内置在context参数里

    此答案来自钉钉群“阿里函数计算官网客户”

    2023-09-01 18:32:56
    赞同 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 热门讨论

    热门文章

    相关电子书

    更多
    MaxCompute Serverless 架构演进 立即下载
    阿里巴巴HTTP 2.0实践及无线通信协议的演进之路 立即下载
    CDN助力企业网站进入HTTPS时代 立即下载