如何在java中使用RESTful Web服务获取远程/客户端IP地址?

时间:2013-01-10 09:53:33

标签: java web-services rest restful-authentication

我在我的项目中编写了Rest Web服务.Web服务调用可能来自不同的机器。所以我需要通过REST webservice找出IP地址。

从此link request.getRemoteAddr()中使用此功能。

但我不能使用getRemoteAddr()。因为我的请求和响应是xml格式。

我在REST服务中使用过post方法.Tomcat服务器。我有xml格式的发送请求。

我如何获得IP地址?

3 个答案:

答案 0 :(得分:33)

假设您使用的是JAX-RS:

@GET
Produces("application/xlm")
public String getData(@Context HttpServletRequest request){
   String ip = request.getRemoteAddr();
}

@Context注释允许您注入

的实例
  • javax.ws.rs.core.HttpHeaders,
  • javax.ws.rs.core.UriInfo,
  • javax.ws.rs.core.Request,
  • javax.servlet.HttpServletRequest,
  • javax.servlet.HttpServletResponse,
  • javax.servlet.ServletConfig,
  • javax.servlet.ServletContext和
  • javax.ws.rs.core.SecurityContext objects。

答案 1 :(得分:0)

无论您的请求的格式(或内容类型)如何(在本例中为xml) IP地址随您的请求一起提供,通过该请求提交xml有效负载(请求)。 因此,检查您的请求是最好的方法。

答案 2 :(得分:0)

即使您的请求是xml / json格式,您也会使用request.getRemoteAddr();获取远程/客户端计算机地址,因为IP地址位于HTTP Request header