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

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

从这个链接 request.getRemoteAddr()来使用它。

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

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

我怎样才能获得IP地址?

假设您使用的是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对象。

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

即使您的请求是xml / json格式,您也可以使用request.getRemoteAddr();获取远程/客户端机器地址request.getRemoteAddr(); 因为IP地址位于HTTP请求标头中 。