Get IP address of client in JSP

前端 未结 4 686
慢半拍i
慢半拍i 2021-02-09 11:36

I need to get the IP address of the client in the JSP page. I have tried the following ways:

request.getRemoteAddr()
request.getHeader(\"X_FORWARDED_FOR\")
reque         


        
相关标签:
4条回答
  • 2021-02-09 12:01

    Is your application server behind a load balancer, a proxy or a web server? Just an example; F5 load balancer exposes the client IP address with the "rlnclientipaddr" header:

    request.getHeader("rlnclientipaddr");
    
    0 讨论(0)
  • 2021-02-09 12:01
    <%
    out.print( request.getRemoteAddr() );
    out.print( request.getRemoteHost() );
    %>
    

    You may not get the real client IP if a the client is behind a proxy, you will get the IP of the proxy and not the client. However, the proxy may include the requesting client IP in a special HTTP header.

    <%
    out.print( request.getHeader("x-forwarded-for") );
    %>
    
    0 讨论(0)
  • 2021-02-09 12:08

    do you use reverse proxy like apache proxy? http://httpd.apache.org/docs/2.2/mod/mod_proxy.html

    When acting in a reverse-proxy mode (using the ProxyPass directive, for example), mod_proxy_http adds several request headers in order to pass information to the origin server. These headers are:

    X-Forwarded-For
    The IP address of the client.
    X-Forwarded-Host
    The original host requested by the client in the Host HTTP request header.
    X-Forwarded-Server
    The hostname of the proxy server.
    
    0 讨论(0)
  • 2021-02-09 12:20

    To get IP address of the client, I've used the following method

    <%   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.getHeader("HTTP_CLIENT_IP");  
            }  
            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {  
                ip = request.getHeader("HTTP_X_FORWARDED_FOR");  
            }  
            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {  
                ip = request.getRemoteAddr();  
            }
            %>
    

    Hope this helps, please leave a feed back.

    0 讨论(0)
提交回复
热议问题