IP 地址获取

简介:

public String getIPAddr() {
        HttpServletRequest request = getRequest();
        String ip = request.getHeader("x-forwarded-for");
        if (StringUtils.isNullOrEmpty(ip)|| "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("X-Forwarded-For");  
        }
        if (StringUtils.isNullOrEmpty(ip)|| "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("Proxy-Client-IP");
        }
        if (StringUtils.isNullOrEmpty(ip)|| "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("WL-Proxy-Client-IP");
        }
        if (StringUtils.isNullOrEmpty(ip)|| "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("HTTP_CLIENT_IP"); 
        }
        if (StringUtils.isNullOrEmpty(ip)|| "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("HTTP_X_FORWARDED_FOR");
        }
        if (StringUtils.isNullOrEmpty(ip)|| "unknown".equalsIgnoreCase(ip)) {
            ip = request.getRemoteAddr();
        }
        if(!StringUtils.isNullOrEmpty(ip)&&ip.indexOf(",")!=-1){
            ip = ip.substring(ip.lastIndexOf(",") + 1, ip.length()).trim();
        }
        logger.info("x-forwarded-for:"+request.getHeader("x-forwarded-for"));
        logger.info("Proxy-Client-IP:"+request.getHeader("Proxy-Client-IP"));
        logger.info("WL-Proxy-Client-IP:"+request.getHeader("WL-Proxy-Client-IP"));
        logger.info("HTTP_CLIENT_IP:"+request.getHeader("HTTP_CLIENT_IP"));
        logger.info("HTTP_X_FORWARDED_FOR:"+request.getHeader("HTTP_X_FORWARDED_FOR"));
        logger.info("http_client_ip:"+request.getHeader("http_client_ip"));
        logger.info("remote_ip:"+request.getRemoteAddr());
        return ip.equals("0:0:0:0:0:0:0:1")?"127.0.0.1":ip;
    }


public static boolean isNullOrEmpty(String str) {
        return str == null || "".equals(str) || "null".equals(str);
    }


isNullOrEmpty方法为自己写的,稍微修改下






      本文转自tianjian_0913 51CTO博客,原文链接:http://blog.51cto.com/tianjian/1675660,如需转载请自行联系原作者


相关文章
|
6月前
|
开发工具
修改IP地址
【2月更文挑战第29天】修改IP地址。
79 2
|
网络协议 网络架构 C++
一文搞定IP地址
本文详细的介绍了IP地址的所有细节,学习完本章小白将打下坚实的基础
|
6月前
|
网络协议 网络架构
特殊的ip地址
特殊的ip地址
59 3
|
2月前
|
网络架构
5-8|什么样子的IP是内网地址
5-8|什么样子的IP是内网地址
|
6月前
|
网络协议 CDN
IP地址相关讲解
IP地址相关讲解
60 0
IP地址10.224.12.1的子网掩码为255.240.0.0,和该地址在同一子网中的地址是
IP地址10.224.12.1的子网掩码为255.240.0.0,和该地址在同一子网中的地址是
145 0
|
网络协议 网络架构
IP地址和端口号
IP地址一共有4byte(32bit组成),比如0.0.0.0,不简写的话就是0000 0000.0000 0000.0000 0000.0000 0000
125 0
|
域名解析 测试技术
IP地址是什么?IP地址和私有地址范围详解
IP地址是什么?IP地址和私有地址范围详解
257 0
IP地址是什么?IP地址和私有地址范围详解
|
数据库
IP地址以及端口号
IP地址以及端口号
365 0
IP地址以及端口号
|
开发者 Python
什么是 ip 地址 | 学习笔记
快速学习 什么是 ip 地址
262 0
什么是 ip 地址 | 学习笔记