import javax. servlet. http. HttpServletRequest ;
import java. net. InetAddress ;
import java. net. UnknownHostException ;
public class RequestUtil { public static String getRequestIp ( HttpServletRequest request) { String ipAddress = request. getHeader ( "x-forwarded-for" ) ; if ( ipAddress == null || ipAddress. length ( ) == 0 || "unknown" . equalsIgnoreCase ( ipAddress) ) { ipAddress = request. getHeader ( "Proxy-Client-IP" ) ; } if ( ipAddress == null || ipAddress. length ( ) == 0 || "unknown" . equalsIgnoreCase ( ipAddress) ) { ipAddress = request. getHeader ( "WL-Proxy-Client-IP" ) ; } if ( ipAddress == null || ipAddress. length ( ) == 0 || "unknown" . equalsIgnoreCase ( ipAddress) ) { ipAddress = request. getRemoteAddr ( ) ; if ( ipAddress. equals ( "127.0.0.1" ) || ipAddress. equals ( "0:0:0:0:0:0:0:1" ) ) { InetAddress inetAddress = null ; try { inetAddress = InetAddress . getLocalHost ( ) ; } catch ( UnknownHostException e) { e. printStackTrace ( ) ; } ipAddress = inetAddress. getHostAddress ( ) ; } } if ( ipAddress != null && ipAddress. length ( ) > 15 ) { if ( ipAddress. indexOf ( "," ) > 0 ) { ipAddress = ipAddress. substring ( 0 , ipAddress. indexOf ( "," ) ) ; } } return ipAddress; } }