| package com.mzl.flower.utils; | 
|   | 
| import org.apache.commons.lang3.StringUtils; | 
|   | 
| import javax.servlet.http.HttpServletRequest; | 
| import java.io.IOException; | 
|   | 
| public class IpUtil { | 
|     public static String getIpAddress(HttpServletRequest request) throws IOException { | 
|         // 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址 | 
|         String ip = request.getHeader("X-Real-IP"); | 
|   | 
|         if (StringUtils.isBlank(ip) || "unknown".equalsIgnoreCase(ip)) { | 
|             ip = request.getHeader("X-Forwarded-For"); | 
|         } | 
|   | 
|         if (StringUtils.isBlank(ip) || "unknown".equalsIgnoreCase(ip)) { | 
|             ip = request.getHeader("Proxy-Client-IP"); | 
|         } | 
|         if (StringUtils.isBlank(ip) || "unknown".equalsIgnoreCase(ip)) { | 
|             ip = request.getHeader("WL-Proxy-Client-IP"); | 
|         } | 
|         if (StringUtils.isBlank(ip) || "unknown".equalsIgnoreCase(ip)) { | 
|             ip = request.getHeader("HTTP_CLIENT_IP"); | 
|         } | 
|         if (StringUtils.isBlank(ip) || "unknown".equalsIgnoreCase(ip)) { | 
|             ip = request.getHeader("HTTP_X_FORWARDED_FOR"); | 
|         } | 
|         if (StringUtils.isBlank(ip) || "unknown".equalsIgnoreCase(ip)) { | 
|             ip = request.getRemoteAddr(); | 
|         } | 
|   | 
|         if (ip.length() > 15) { | 
|             String[] ips = ip.split(","); | 
|             for (String strIp : ips) { | 
|                 if (!("unknown".equalsIgnoreCase(strIp))) { | 
|                     ip = strIp; | 
|                     break; | 
|                 } | 
|             } | 
|         } | 
|         return ip; | 
|     } | 
| } |