java通过请求对象获取ip地址、获取ip地址

2021/6/2 20:22:48

本文主要是介绍java通过请求对象获取ip地址、获取ip地址,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

    /**
     * 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址;
     *
     * @param request
     * @return
     * @throws IOException     */
    public final static String getIpAddress(HttpServletRequest request) throws IOException {        // 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址
        String ip = request.getHeader("X-Forwarded-For");        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {            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("HTTP_CLIENT_IP");

            }            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
                ip = request.getHeader("HTTP_X_FORWARDED_FOR");


            }            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
                ip = request.getRemoteAddr();

            }
        } else if (ip.length() > 15) {
            String[] ips = ip.split(",");            for (int index = 0; index < ips.length; index++) {
                String strIp = (String) ips[index];                if (!("unknown".equalsIgnoreCase(strIp))) {
                    ip = strIp;                    break;
                }
            }
        }        return ip;
    }

 



这篇关于java通过请求对象获取ip地址、获取ip地址的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程