2009-09-09 3 views
3

Как я могу получить доступ к данным клиента, таким как IP, браузер и т. Д. В веб-службе в Java?Сведения о клиенте в webservice

+0

Как вы реализовали серверную сторону? Какие рамки вы использовали? – 2009-09-09 09:29:19

+0

Вы не упомянули о своей среде. Будете ли вы использовать веб-сервер и какой сервер? Кто назовет вас веб-службой, браузером или клиентским приложением веб-сервиса? –

+0

У меня есть одна страница Jsp, которая вызывает веб-службу. веб-метод должен регистрировать каждый полученный запрос. Поэтому мне нужен клиентский Ip и браузер. пользовательский доступ к этой странице jsp. Сервер Tomacat. –

ответ

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

, это будет делать, если iam использует только страницы Jsp. –

0

Информация, связанная с браузером, будет доступна в заголовках HTTP, таких как: тип контента, версия и т. Д. Если веб-служба могла получить IP-адрес своих клиентов, безопасность была бы в значительной степени включена. IP-адрес может быть недоступен до тех пор, пока клиент не отправит его в качестве параметра для вашего вызова.

+2

Зачем нужна безопасность? Сервер всегда знает IP-адрес клиента. В противном случае он не знал, куда отправить ответ на запрос – janko

+0

Нет, сервер знает только IP-адрес для ответа, который может быть адресом прокси-сервера или устройства NAT. Это не может быть IP-адрес клиента. –

+0

@janko. Когда вы подключаетесь к серверу в Интернете, сервер знает только адрес следующего перехода, а не IP-адрес клиента. И если вы находитесь за прокси-сервером, то при максимальном уровне сервер может знать прокси-ip, но не фактический клиентский ip, который находится за прокси-сервером – Cshah

1

если вы используете ось или Jax Rpc, то вы можете это получить IP-адрес и браузер, Это должно быть сделано на стороне сервера заглушки.

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

String ip = httpReq.getRemoteAddr(); 

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