2012-01-19 16 views

Respuesta

37

Puede recuperarlo desde HttpServletRequest, usando getRemoteAddr() para obtener acceso a la dirección IP del usuario y getHeader() para obtener el valor del encabezado.

Por ejemplo

@Controller 
public class MyController { 
    @RequestMapping(value="/do-something") 
    public void doSomething(HttpServletRequest request) { 
     final String userIpAddress = request.getRemoteAddr(); 
     final String userAgent = request.getHeader("user-agent"); 
     .... 
    } 
} 

puede pasar otros parámetros para el método doSomething(), como modelo o solicita params.

+0

Gracias. Estaba ocupado borrando mi publicación cuando recibí la notificación. Lo averigué. ¡Gracias de cualquier manera! –

+4

si el cliente está detrás del servidor proxy, entonces la posible solución usaría 'String ip = req.getHeader (" X-FORWARDED-FOR ");' –

+0

y luego manejarlo con condiciones como 'if (ip == null) ip = request .getRemoteAddr(); ' –

Cuestiones relacionadas