2012-01-19 5 views

Répondre

37

Vous pouvez le récupérer auprès de HttpServletRequest, en utilisant getRemoteAddr() pour accéder à l'adresse IP de l'utilisateur et getHeader() pour obtenir la valeur de l'en-tête.

Par exemple

@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"); 
     .... 
    } 
} 

Vous pouvez passer d'autres paramètres à la méthode doSomething(), comme params modèle ou demande.

+0

Merci. J'étais en train de supprimer mon message lorsque j'ai reçu la notification. Deviner. Merci quand même! –

+4

si le client est derrière le serveur proxy alors la solution possible serait en utilisant 'String ip = req.getHeader (" X-FORWARDED-FOR ");' –

+0

et en le gérant avec la condition comme si (ip == null) ip = demande .getRemoteAddr(); ' –