获取客户端的 IP 地址 对于 Web 服务

2022-09-02 05:19:36

我正在使用 JAX-WS,但在检索正在使用 Web 服务的客户机信息时遇到问题。我已经找到了如何使用JAX-RPC和Apache Tomcat Axis做到这一点,但不是使用JAX-WS。有人对此有想法吗?


答案 1

那这个呢:

@WebService
public class MyService {

  @Resource
  WebServiceContext wsContext; 

  /**
   * Web service operation
   */ 
  @WebMethod 
  public String myMethod() { 

    MessageContext mc = wsContext.getMessageContext();
    HttpServletRequest req = (HttpServletRequest)mc.get(MessageContext.SERVLET_REQUEST); 
    System.out.println("Client IP = " + req.getRemoteAddr()); 

  }

} 

答案 2

或者这个:

@Path("terminal")
public class terminal {
    @Context private javax.servlet.http.HttpServletRequest hsr;
    @GET
    @Path("get_ip")
    @Produces("text/plain")
    public String get_ip()
    {
            return ip = hsr.getRemoteAddr();
    }
}