Java获取用户ip

 1、如果服务器如果没有采用反向代理,而且客户端没有用正向代理的话,那么可以获取客户端的真实IP地址request.getRemoteAddr()

  2、如果服务器如果没有采用反向代理,而且客户端有用正向代理的话,那么通过request.getRemoteAddr()获取客户端的IP地址是客户端 的代理服务器的地址,并不是客户端的真实地址,

  3、如果客户端使用的是多层代理的话,服务器获得的客户端地址是客户端的最外围代理服务器的地址如果服务器如果采用反向代理服务器,不管客户端采用的是何种方式访问服务器。


//获得客户端真实IP地址的方法一:
public  String getRemortIP(HttpServletRequest request) {  
     if  (request.getHeader( "x-forwarded-for" ) ==  null ) {  
         return  request.getRemoteAddr();  
     }  
     return  request.getHeader( "x-forwarded-for" );  
}  
//获得客户端真实IP地址的方法二:
public  String getIpAddr(HttpServletRequest request) {  
     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;  

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值