• JavaWeb开发获取客户IP地址


    原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11737637.html

      本地调试如果使用的是localhost进行访问, 则会获取到 0:0:0:0:0:0:0:1, 将localhost修改成127.0.0.1或者你的本机ip地址再进行访问就可以看到真实地址了.

      这种方法获取ip地址对nginx部署的服务也是有效果的, 对Apache和Weblogic应该也是可以的.

    /**
         * 获取客户端真实ip地址
         * @param request
         * @return
         */
        public String getIp(HttpServletRequest request){
            /**
             * 获取距离服务器最远的那个ip
             */
            String ip = request.getHeader("x-forwarded-for");
            if (ipIsNullOrEmpty(ip)){
                /**
                 * apache http服务代理加上的ip
                 */
                ip = request.getHeader("Proxy-Client-IP");
            }
            if (ipIsNullOrEmpty(ip)){
                /**
                 * weblogic插件加上的头
                 */
                ip = request.getHeader("WL-Proxy-Client-IP");
            }
            if (ipIsNullOrEmpty(ip)){
                /**
                 * 真实ip
                 */
                ip = request.getHeader("X-Real-IP");
            }
            if (ipIsNullOrEmpty(ip)){
                /**
                 * 最后真实的ip
                 */
                ip = request.getRemoteAddr();
            }
    
            return ip;
        }
    
        /**
         * 当前ip是否为空
         * @param ip
         * @return
         */
        public boolean ipIsNullOrEmpty(String ip){
            if(ip == null || ip.length()==0 || "unknown".equalsIgnoreCase(ip)){
                return true;
            }
            return false;
        }
  • 相关阅读:
    配置JDK环境变量
    yum 卸载安装的软件包及依赖
    常用命令--patch
    Git 源码编译安装
    基础Git命令
    下载资源的一些方法
    Python/Jupyter小技巧
    欺诈类Kaggle竞赛赛题描述
    工作小笔记
    进入互联网数据分析岗位需要明白的一些事
  • 原文地址:https://www.cnblogs.com/fanerwei222/p/11737637.html
Copyright © 2020-2023  润新知