How to get client Ip Address in Java HttpServletRequest

前端 未结 4 1033
时光取名叫无心
时光取名叫无心 2020-12-25 12:07

I am trying to develop a Java web application (Servlet) which I need to get clients IP address.

Following is my code so far:



        
4条回答
  •  孤独总比滥情好
    2020-12-25 12:38

    Try this one. for all condition

    private static final String[] HEADERS_TO_TRY = {
                "X-Forwarded-For",
                "Proxy-Client-IP",
                "WL-Proxy-Client-IP",
                "HTTP_X_FORWARDED_FOR",
                "HTTP_X_FORWARDED",
                "HTTP_X_CLUSTER_CLIENT_IP",
                "HTTP_CLIENT_IP",
                "HTTP_FORWARDED_FOR",
                "HTTP_FORWARDED",
                "HTTP_VIA",
                "REMOTE_ADDR" };
    
    private String getClientIpAddress(HttpServletRequest request) {
        for (String header : HEADERS_TO_TRY) {
            String ip = request.getHeader(header);
            if (ip != null && ip.length() != 0 && !"unknown".equalsIgnoreCase(ip)) {
                return ip;
            }
        }
    
        return request.getRemoteAddr();
    }
    

提交回复
热议问题