Java 获取客户端IP地址

本文介绍了一个Java实用类IpUtils,该类提供了从HttpServletRequest中获取客户端真实IP地址的方法。通过检查不同的HTTP头部信息,如'x-forwarded-for'、'Proxy-Client-IP'等来确定客户端的实际IP地址。
[java]  view plain  copy
 print ?
  1. package com.mrchu.util;  
  2.   
  3. import javax.servlet.http.HttpServletRequest;  
  4.   
  5. /** 
  6.  * 获取客户端IP地址 
  7.  * @author mrchu 
  8.  * @version 1.0 
  9.  * @date 2013-7-31 
  10.  */  
  11. public class IpUtils {  
  12.       
  13.     /** 
  14.      * 获得IP地址 
  15.      * @param request 
  16.      * @return 
  17.      */  
  18.     public static String getIpAddress(HttpServletRequest request){  
  19.         String ip = request.getHeader("x-forwarded-for");  
  20.         if (IpUtils.isNotEmpty(ip)){  
  21.             ip = request.getHeader("Proxy-Client-IP");  
  22.         }  
  23.         if (IpUtils.isNotEmpty(ip)){  
  24.             ip = request.getHeader("WL-Proxy-Client-IP");  
  25.         }  
  26.         if (IpUtils.isNotEmpty(ip)){  
  27.             ip = request.getRemoteAddr();  
  28.         }  
  29.         if (ip.indexOf("0:") != -1){  
  30.             ip = "本地";  
  31.         }  
  32.         return ip;  
  33.     }  
  34.       
  35.     /** 
  36.      * 判断IP是否为空 
  37.      * @param ip 
  38.      * @return 
  39.      */  
  40.     public static boolean isNotEmpty(String ip){  
  41.         if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){  
  42.             return false;  
  43.         }else{  
  44.             return true;  
  45.         }  
  46.     }  
  47.   
  48. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值