Java-GetIp

JAVA学习网 2018-04-02 21:35:02

/**
* 获取用户真实IP,用作校验
* @param httpServletRequest
* @return
*/

public static String getAccessRealIp(HttpServletRequest httpServletRequest) { 
String ipAddress = null; 
ipAddress = httpServletRequest.getHeader("X-Real-IP"); 
System.out.println("X-Real-IP========"+ipAddress); 
if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { 
ipAddress = httpServletRequest.getHeader("x-forwarded-for"); 
System.out.println("x-forwarded-for====="+ipAddress); 

if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { 
ipAddress = httpServletRequest.getHeader("Proxy-Client-IP"); 
System.out.println("Proxy-Client-IP====="+ipAddress); 

if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { 
ipAddress = httpServletRequest.getHeader("WL-Proxy-Client-IP"); 
System.out.println("WL-Proxy-Client-IP======="+ipAddress); 

if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { 
ipAddress = httpServletRequest.getRemoteAddr(); 
System.out.println("RemoteAddr======="+ipAddress); 
System.out.println(ipAddress); 
if(ipAddress.equals("127.0.0.1")){ 
InetAddress inet=null; 
try { 
inet = InetAddress.getLocalHost(); 
} catch (Exception e) { 
e.printStackTrace(); 

ipAddress= inet.getHostAddress(); 
System.out.println("127.0.0.1======="+ipAddress); 


if(ipAddress!=null && ipAddress.length()>15){ //"***.***.***.***".length() = 15 
if(ipAddress.indexOf(",")>0){ 
System.out.println(ipAddress); 
String[] ipArray = new String[5]; 
//ipAddress = ipAddress.substring(0,ipAddress.indexOf(",")); 
ipArray = ipAddress.split(","); 
System.out.println("多个代理获得的原始ip=============="+ipAddress); 
ipAddress = ipArray[1].trim(); 
System.out.println("多个代理获得的ip=============="+ipAddress); 


return ipAddress; 
}

阅读(717) 评论(0)