/**
* 获取用户真实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;
}
Java-GetIp
阅读(717) 评论(0)