获取访问者的真实IP地址,绕过路由映射等

来源:互联网 发布:matlab生成无标度网络 编辑:程序博客网 时间:2024/06/07 05:56

当我们网站需要获取访问者的真实IP地址,而不是访问者的路由地址,
可以使用以下方法:

public String getIp(HttpServletRequest request){    String ip = request.getHeader("x-forwarded-for");    if(null = ip || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){        ip = request.getHeader("Proxy-Client-IP");    }    if(null = ip || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){        ip = request.getHeader("WL-Proxy-Client-IP");    }    if(null = ip || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){        ip = request.getHeader("HTTP-Client-IP");    }    if(null = ip || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){        ip = request.getHeader("HTTP-X-FORWARDED-IP");    }    if(null = ip || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){        ip = request.getRemoteAddr();    }else if(ip.length()>15){        String[] ips = ip.split(",");        for(int index = 0; index < ip.length(); index ++){            String strIp = (String)ips[index];            if(!("unknown".equalsIgnoreCase(strIp))){                ip = strIp;                break;            }        }    }    return ip;}
0 0
原创粉丝点击