【问题标题】:How to capture client ip of web application in flask? [duplicate]如何在烧瓶中捕获 Web 应用程序的客户端 IP? [复制]
【发布时间】:2021-01-14 07:32:27
【问题描述】:

我正在尝试在日志中捕获客户端 ip 并在开发服务器上获取正确的 ip,但在坐服务器上部署后,默认情况下会获取错误的 ip (10.46.0.0)。请有人建议,flask python中还有什么可以使用的?提前致谢。

代码:-

导入请求

Ip = request.environ['REMOTE_ADDR']

【问题讨论】:

    标签: python flask request


    【解决方案1】:

    您似乎从反向代理获得了地址。原始客户端 IP 可能会作为代理链的一部分转发。

    这对我有用。

    client_ip = request.headers.get(
            'X-Forwarded-For',
            request.headers.get('Client-Ip',
                request.remote_addr))
    

    WSGI 和 CGI​​ 是有区别的。
    WSGI:request.headers
    CGI:request.environ

    【讨论】:

      【解决方案2】:

      您检索的 IP 地址是 CIDR 块 10.0.0.0/8 的一部分,并为专用网络保留。这告诉我您的应用程序部署在反向代理后面,该代理代表原始用户执行对您的应用程序的请求。反向代理通常会通过将标头 X-Forwarded-For 添加到代理请求来通知上游服务(您的应用程序)有关原始 IP 地址的信息。这取决于反向代理的配置,因此您应该联系部署服务器的负责人了解其配置。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-02-25
        • 2021-09-21
        • 2021-01-19
        • 1970-01-01
        • 2021-10-16
        • 1970-01-01
        • 2013-09-29
        相关资源
        最近更新 更多