开发者社区> 问答> 正文

realip模块如何获取真实ip地址?

realip模块如何获取真实ip地址?

展开
收起
xin在这 2021-12-13 23:36:45 150687 0
47 条回答
写回答
取消 提交回答
  • CSDN全栈领域优质创作者,万粉博主;InfoQ签约博主;华为云享专家;华为Iot专家;亚马逊人工智能自动驾驶(大众组)吉尼斯世界纪录获得者

    realip模块是一个用于获取真实IP地址的Python模块。它可以自动检测客户端的真实IP地址,并将其返回给应用程序。

    在Linux系统上,真实IP地址通常由网络设备(如路由器或负载均衡器)分配给客户端。因此,如果您正在使用Linux服务器,则可以使用realip模块来获取真实IP地址。

    要使用realip模块,您需要安装它。您可以使用pip命令来安装它:

    
    
    

    然后,您可以在您的Python代码中导入realip模块,并调用其函数来获取真实IP地址。例如:

    
    import socket
    from realip import real_ip
    
    def get_client_ip(request):
        x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
        if x_forwarded_for:
            ip = x_forwarded_for.split(',')[0]
        else:
            ip = request.META.get('REMOTE_ADDR')
        return real_ip(ip)
    
    
    

    这个函数将从请求头中获取客户端IP地址,并使用realip模块来获取真实IP地址。如果请求头中没有X-Forwarded-For头信息,则会使用REMOTE_ADDR头信息来获取客户端IP地址。最后,它将返回真实IP地址。

    2023-05-17 14:45:24
    赞同 展开评论 打赏
  • 学习

    2022-05-26 22:30:11
    赞同 展开评论 打赏
  • 学习一下,谢谢

    2022-05-24 10:39:05
    赞同 展开评论 打赏
  • 123123123
    2022-05-19 23:37:01
    赞同 展开评论 打赏
  • 学习

    2022-05-19 22:05:54
    赞同 展开评论 打赏
  • <img href =javascript://xxx.cn%0Aalert(/1/)

    2022-05-19 22:05:53
    赞同 展开评论 打赏
  • 学习

    2022-05-19 08:43:10
    赞同 展开评论 打赏
  • 学习

    2022-05-17 14:45:23
    赞同 展开评论 打赏
  • 学习学习学习

    2022-05-17 10:08:20
    赞同 展开评论 打赏
  • 学习

    2022-05-10 09:58:50
    赞同 展开评论 打赏
  • 学习

    2022-05-10 09:58:50
    赞同 展开评论 打赏
  • 66

    2022-05-10 09:30:59
    赞同 展开评论 打赏
  • 专注大数据、架构框架、集群、中间件、分布式、数据库、监控、开源、基础架构等技术分享,助力数字化转型。

    学习了

    2022-05-09 16:21:04
    赞同 1 展开评论 打赏
  • 学习了

    2022-05-09 15:40:21
    赞同 展开评论 打赏
  • 热爱产品,专注运营,深耕市场、内容、品牌,热衷于探索科技与人类生活的内在关系,aiAI~~

    学习了 学习了

    2022-05-09 10:05:32
    赞同 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    Nginx代理将真实IP透传,Nginxweb打印真实IP; ngx_http_realip 模块的作用是当你的 nginx 服务器位于一个反向代理后面时,去获取客户端真实访问的 IP。这个模块默认没有编译到 Nginx 中,需要在编译时通过 --with-http_realip_module 开启。 一、编译安装首先得安装该模块 -with-http_realip_module

    /configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module
    
    

    二、参数配置

    提供代理服务的Nginx配置,在location模块添加;

    proxy_set_header   Host             $host;
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    
    

    提供web服务的Nginx配置,在http模块、location 模块根据自己需求添加;

    set_real_ip_from  192.168.6.80;        #这个ip是代理服务器的地址;
    real_ip_header    X-Forwarded-For;
    
    

    配置nginx的log_format ,添加“http_x_forwarded_for”;

    log_format  main  '"$http_x_forwarded_for" - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent"';
    
    

    在访问日志时候就会打印真实的IP地址;

    2022-05-05 10:05:48
    赞同 展开评论 打赏
  • 微信搜索「龙哥手记」,回复关键字:见面礼

    学习下

    2022-04-30 08:16:58
    赞同 展开评论 打赏
  • 学习了

    2022-04-26 18:11:09
    赞同 展开评论 打赏
  • 1

    2022-04-22 13:18:57
    赞同 展开评论 打赏
  • 学习下

    2022-04-22 09:24:58
    赞同 展开评论 打赏
滑动查看更多
问答地址:
问答排行榜
最热
最新

相关电子书

更多
“静态调用链路发现”应用场景分析及实践探索 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载