zoukankan      html  css  js  c++  java
  • 获取ip

     #region 获得客户端IP

            /// <summary>
            /// 获得客户端IP
            /// </summary>
            /// <returns></returns>
            public string GetClientIp()
            {
                var ip = "127.0.0.1";
                //穿过代理服务器取远程用户真实IP地址
                if (HttpContext.Current == null
                    || HttpContext.Current.Request == null
                    || HttpContext.Current.Request.ServerVariables == null)
                {
                }
                //CDN加速后取到的IP     
                else if (HttpContext.Current.Request.Headers["Cdn-Src-Ip"] != null)
                {
                    ip = HttpContext.Current.Request.Headers["Cdn-Src-Ip"];
                }
                else if (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null)
                {
                    ip = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
                }
                else if (HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"] != null)
                {
                    ip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
                }
                else if (HttpContext.Current.Request.ServerVariables["HTTP_CLIENT_IP"] != null)
                {
                    ip = HttpContext.Current.Request.ServerVariables["HTTP_CLIENT_IP"].ToString();
                }
                else if (HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"] != null)
                {
                    ip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
                }
                else
                {
                    ip = HttpContext.Current.Request.UserHostAddress;
                }
                return ip;
            }

            #endregion 获得客户端IP

  • 相关阅读:
    SpringBoot获取配置文件,就这么简单。
    IDEA 插件推荐 —— 让你写出好代码的神器!
    太高效了!玩了这么久的Linux,居然不知道这7个终端快捷键!
    万字长文!一次性弄懂 Nginx 处理 HTTP 请求的 11 个阶段
    一个排查了大半天儿的问题,差点又让 MyBatis 背锅
    使用Flutter开发的抖音国际版
    一文回顾Redis五大对象(数据类型)
    Gradle系列之初识Gradle
    OpenJFX DJ 风格 Java 桌面音乐播放器
    【高并发】高并发秒杀系统架构解密,不是所有的秒杀都是秒杀!
  • 原文地址:https://www.cnblogs.com/sll-fuling/p/9754078.html
Copyright © 2011-2022 走看看