zoukankan      html  css  js  c++  java
  • 获取客户端IP地址

    /**
         * 获取客户端Ip地址
         * @param request   HttpServletRequest
         * @return  ip addr
         */
        private String getRemoteIP(HttpServletRequest request) {
            String ip  =  request.getHeader( "x-forwarded-for" );
            if (ip  ==   null   ||  ip.length()  ==   0   ||   "unknown" .equalsIgnoreCase(ip))  {
                ip  =  request.getHeader( "Proxy-Client-IP" );
            }
            if (ip  ==   null   ||  ip.length()  ==   0   ||   "unknown" .equalsIgnoreCase(ip))  {
                ip  =  request.getHeader( "WL-Proxy-Client-IP" );
            }
            if (ip  ==   null   ||  ip.length()  ==   0   ||   "unknown" .equalsIgnoreCase(ip))  {
                ip  =  request.getRemoteAddr();
            }
            if (ip.contains(",")) {
                List<String> moreIps = Arrays.stream(ip.split(",")).map(String::trim).collect(Collectors.toList());
                String firstReliableIp = moreIps.stream().filter(i -> !"unknown".equalsIgnoreCase(i)).findFirst().orElse(null);
                if (firstReliableIp != null) {
                    ip = firstReliableIp;
                }
            }
            return  ip;
        }
  • 相关阅读:
    PostgreSQL缺省值
    PostgreSQL表的基本概念
    PostgreSQL调用函数
    4.2. PostgreSQL值表达式
    3.5. PostgreSQL继承
    3.4. PostgreSQL事务
    3.3. PostgreSQL外键
    3.2. PostgreSQL视图
    碰撞
    骨骼
  • 原文地址:https://www.cnblogs.com/ms-grf/p/13469816.html
Copyright © 2011-2022 走看看