| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
peke
9年前发布

Java获取请求主机IP地址IPUtil

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

public class IPUtil {         private static Logger logger = Logger.getLogger(IPUtil.class);      /**       * 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址;       */      public final static String getIpAddress(HttpServletRequest request) throws IOException {          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;      }  }