2009-09-09 11 views
3

Comment puis-je accéder aux détails du client tels que IP, navigateur, etc. dans un service Web de Java?Détails du client dans le service Web

+0

Comment avez-vous implémenté le côté serveur? Quel cadre avez-vous utilisé? –

+0

Vous n'avez pas mentionné votre environnement. Utiliserez-vous un serveur Web et quel serveur? Qui vous appellera service Web, navigateur ou application client de service Web? –

+0

J'ai une page JSP qui appelle un service Web. la méthode web doit consigner chaque requête reçue. J'ai donc besoin de Client IP et de navigateur. l'accès de l'utilisateur que la page jsp. Le serveur est Tomacat. –

Répondre

1
String ip = request.getRemoteAddress(); 
String browser = request.getHeader("User-Agent"); 
+0

cela fonctionnera si j'utilise uniquement les pages JSP. –

0

Les informations relatives au navigateur seraient disponibles dans les en-têtes HTTP comme: type de contenu, version, etc. Si un service Web pouvait obtenir l'adresse IP de ses clients, la sécurité aurait été fortement comprise. L'adresse IP ne peut jamais être accédée jusqu'à ce que le client l'envoie comme paramètre à votre appel.

+2

Pourquoi la sécurité serait-elle compromise? Le serveur connaît toujours l'adresse IP du client. Sinon, il ne sait pas où envoyer la réponse à une demande. – janko

+0

Non, le serveur ne connaît que l'adresse IP à laquelle répondre, qui peut être l'adresse d'un serveur proxy ou d'un périphérique NAT. Cela peut ne pas être une adresse IP du client. –

+0

@janko, Lorsque vous vous connectez à un serveur sur Internet, le serveur ne connaît que l'adresse du saut suivant et non l'adresse IP du client. Et si vous êtes derrière un proxy alors au maximum le serveur peut connaître l'adresse IP du proxy mais pas l'adresse IP du client qui se trouve derrière le proxy – Cshah

1

si vous utilisez l'axe ou Jax Rpc, alors vous pouvez ceci pour obtenir l'adresse IP et le navigateur, cela doit être fait sur le talon du côté serveur.

HttpServletRequest httpReq = (HttpServletRequest) MessageContext.getCurrentContext().getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST); 

String ip = httpReq.getRemoteAddr(); 

String browser = httpReq.getHeader("User-Agent"); 
Questions connexes