获取客户端IP地址

/**
  * 获取客户端IP,可以经过一级代理
  * @modify by lingl 2012-06-14
  * @param pd
  * @return
  * @throws Exception
  */
 public static String getIPAddress(PageData pd) throws Exception {
  HttpServletRequest request = pd.getRequest();
  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.getRemoteAddr();
  }
  return ip.split(",")[0];
 }
 
 /**
  * 获取客户端IP地址,如果通过代理进来,则透过防火墙获取真实IP地址
  * getClientIP
  *
  * @param pd
  * @return
  * @throws Exception String
  * @Exception
  * @author:lingl@asiainfo-linkage.com
  * @2012-7-20 上午11:06:14
  * @update:
  * @2012-7-20 上午11:06:14
  */
 public static String getClientIP(PageData pd) throws Exception  {
  HttpServletRequest request = pd.getRequest();
  String strClientIp = request.getHeader("x-forwarded-for");
  log.debug("=======All the IP address string is: " + strClientIp);
  if(strClientIp == null || strClientIp.length() == 0 ||"unknown".equalsIgnoreCase(strClientIp)){ 
   strClientIp = request.getRemoteAddr();
  }else{
   String[] ipList  = strClientIp.split(",");
   String strIp = new String();
   for(int index = 0; index < ipList.length; index ++){
    strIp = (String)ipList[index];
    if(!("unknown".equalsIgnoreCase(strIp))){
     strClientIp = strIp;
     break;
    }
   }
  }
  return strClientIp;
 }

/**
  * 获取客户端IP地址,如果通过代理进来,则透过防火墙获取真实IP地址
  * getClientIP
  *
  * @param pd
  * @return
  * @throws Exception String
  * @Exception
  * @author:lingl@asiainfo-linkage.com
  * @2012-7-20 上午11:06:14
  * @update:
  * @2012-7-20 上午11:06:14
  */
 public static String getClientIP(PageData pd) throws Exception  {
  HttpServletRequest request = pd.getRequest();
  String strClientIp = request.getHeader("x-forwarded-for");
  log.debug("=======All the IP address string is: " + strClientIp);
  if(strClientIp == null || strClientIp.length() == 0 ||"unknown".equalsIgnoreCase(strClientIp)){ 
   strClientIp = request.getRemoteAddr();
  }else{
   String[] ipList  = strClientIp.split(",");
   String strIp = new String();
   for(int index = 0; index < ipList.length; index ++){
    strIp = (String)ipList[index];
    if(!("unknown".equalsIgnoreCase(strIp))){
     strClientIp = strIp;
     break;
    }
   }
  }
  return strClientIp;
 }

原文地址:https://www.cnblogs.com/bassd/p/2848791.html