I have a web application and for that I want to capture the IP address of the clients who are accessing my website so that I can know what region is the most accessing the application. I am using Java EE in my application.
Probably there is some solution if we talk about header and when request is sent from the end-user.
Use method getRemoteAddr() from interface ServletRequest or methods getHeaders() form interface HttpServletRequest:
There’s one caution for using the method getRemoteAddr:
Sure you can use the method and in general case you will get IP of client. However, the method is useless if an user is behind a proxy. In this case you’ll get the proxy server’s IP address and not the client. But the proxy may include the requesting client IP in a special
HTTPheader. So to retrieve real-client-IP call methodgetHeader("X-Forwarded-For").An example usage in JSP:
Use set value of IP address in session using JSTL:
And then get this value from the session in a convenient place.
In JSP you can use
<c:out value="${sessionScope.userIp}" />or in servlet assession.getAttribute('userIp');Please read docs: