request获取ip

Posted ciscoo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了request获取ip相关的知识,希望对你有一定的参考价值。

public static String getIp(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.getHeader("X-Real-IP");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getRemoteAddr();
        }
        if (ip == null) {
            ip = "";
        }
        if ("127.0.0.1".equals(ip) || "localhost".equalsIgnoreCase(ip) || "0:0:0:0:0:0:0:1".equals(ip)) {
            try {
                InetAddress addr = InetAddress.getLocalHost();
                ip = addr.getHostAddress();
            } catch (Exception e) {
                return "";
            }
        }

        // 对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照‘,‘分割
        if (ip != null && ip.length() > 15) { // "***.***.***.***".length() = 15
            if (ip.indexOf(",") > 0) {
                ip = ip.substring(0, ip.indexOf(","));
            }
        }
        return ip;
    }

 

以上是关于request获取ip的主要内容,如果未能解决你的问题,请参考以下文章

JSP 获取真实IP地址的代码

Jsp获取Java的重定向赋值(String)

转载JSP 获取真实IP地址的代码

全网最全Requests库详解,实例引入,代码分析(ip代理,用户认证,证书检测)

无法从JsonArray Request获取请求

获取ip的正确姿势