JAVA獲取訪問用戶的客戶端IP(適用於公網與局域網)

JAVA獲取訪問用戶的客戶端IP(適用於公網與局域網)

[java] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. /** 
  2.  * 獲取訪問用戶的客戶端IP(適用於公網與局域網). 
  3.  */  
  4. public static final String getIpAddr(final HttpServletRequest request)  
  5.         throws Exception {  
  6.     if (request == null) {  
  7.         throw (new Exception("getIpAddr method HttpServletRequest Object is null"));  
  8.     }  
  9.     String ipString = request.getHeader("x-forwarded-for");  
  10.     if (StringUtils.isBlank(ipString) || "unknown".equalsIgnoreCase(ipString)) {  
  11.         ipString = request.getHeader("Proxy-Client-IP");  
  12.     }  
  13.     if (StringUtils.isBlank(ipString) || "unknown".equalsIgnoreCase(ipString)) {  
  14.         ipString = request.getHeader("WL-Proxy-Client-IP");  
  15.     }  
  16.     if (StringUtils.isBlank(ipString) || "unknown".equalsIgnoreCase(ipString)) {  
  17.         ipString = request.getRemoteAddr();  
  18.     }  
  19.   
  20.     // 多個路由時,取第一個非unknown的ip  
  21.     final String[] arr = ipString.split(",");  
  22.     for (final String str : arr) {  
  23.         if (!"unknown".equalsIgnoreCase(str)) {  
  24.             ipString = str;  
  25.             break;  
  26.         }  
  27.     }  
  28.   
  29.     return ipString;  
  30. }  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章