项目获取真实的IP地址

来源:互联网 发布:天下全與总图 知乎 编辑:程序博客网 时间:2024/05/16 17:21

获得真实IP地址,如果通过代理进来,则透过防火墙获取真实IP地址

    /**     * @author tansen     * @date 2017-1-7 21:20:18     * @see 获得真实IP地址     */    public static String getIpAddress(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("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;    }
1 0
原创粉丝点击