1
    @GET
        @Produces(MediaType.APPLICATION_JSON)
        public Response login(@Context HttpHeaders headers, @Context HttpServletRequest request) {
            System.out.println(getClientIpAddress(request));
            String ipAddress = request.getHeader("X-FORWARDED-FOR");
            if (ipAddress == null) {
                ipAddress = request.getRemoteAddr();
            }
            System.out.println("ip:" + ipAddress);
            return new LoginUtils().performLogin(headers.getRequestHeaders());
        }  

  public static 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();
        }

but i am not getting Ip address i am getting same 127.0.0.1 this value from each request different System can please tell me how to get Ip address.

Maklee Lee
  • 263
  • 5
  • 14

1 Answers1

-1

You can do it like this:

Make HttpServletRequest Autowired to make is usable in any function of your controller:

@Autowired
private HttpServletRequest request;

and then just use it in your controller like this:

 String remoteAddr = request.getRemoteAddr();
 String localAddres = request.getLocalAddr();
Irakli
  • 973
  • 3
  • 19
  • 45