webservice中的客户详细信息

问题描述:

如何在java中的Web服务中访问IP,浏览器等客户端详细信息?webservice中的客户详细信息

+0

你是如何实现服务器端的?你使用了什么框架? – 2009-09-09 09:29:19

+0

你没有提到你的环境。 你会使用Web服务器和什么服务器? 谁会打电话给你的Web服务,浏览器或Web服务客户端应用程序? – 2009-09-09 09:33:52

+0

我有一个调用Web服务的Jsp页面。 Web方法需要记录它获取的每个请求。所以我需要客户端IP和浏览器。用户访问那个jsp页面。服务器是Tomacat。 – 2009-09-09 10:10:28

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

如果iam只使用Jsp页面,这将会执行。 – 2009-09-09 10:26:05

有关浏览器的信息将在HTTP头文件中可用,如:内容类型,版本等。 如果Web服务能够获取客户端的IP地址,则安全性将被大量包含。 直到客户端将它作为参数发送给您的呼叫时,才能访问IP地址。

+2

为什么安全性会受到影响?服务器始终知道客户端的IP地址。否则,它不知道在哪里发送对请求的响应 – janko 2009-09-09 09:35:00

+0

不,服务器只知道要响应的IP地址,这可能是代理服务器或NAT设备的地址。这可能不是客户端的IP地址。 – 2009-09-09 09:41:09

+0

@janko,当您连接到Internet上的服务器时,服务器只知道下一个中继地址,而不知道客户端的IP地址。如果你在一个代理的后面,那么在最大服务器可以知道代理ip,但不是代理后面的实际客户ip – Cshah 2009-09-09 09:46:35

如果您使用的是axis或Jax Rpc,那么您可以通过此来获取IP地址和浏览器,这必须在服务器端存根上完成。

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

String ip = httpReq.getRemoteAddr(); 

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