基于JWS的Webservice,如何获取访问过来的客户端的真实IP,真实的IP

我的WebService是JWS的,我想要获取访问我接口的客户端的真实IP,而不是路由器分配的虚拟IP。
我的方法:

@Resource
    private WebServiceContext webServiceContext;
        MessageContext mc = webServiceContext.getMessageContext();
        HttpExchange exchange = (HttpExchange)mc.get(JAXWSProperties.HTTP_EXCHANGE);
        InetSocketAddress isa = exchange.getRemoteAddress();
        ip = isa.getAddress().getHostAddress(); //获取IP

但是这种方式获取到的IP 并不是真实的,但是网上的解决方法都是这个。
另外还有人说获取HttpServletRequest

HttpServletRequest request= (HttpServletRequest)(mc.get(MessageContext.SERVLET_REQUEST));

但是获取到的HttpServletRequest始终为NULL。
至此,我还是没有解决方法。。如何获取客户端的真实IP,请各位大神帮帮忙

查看全部
xianKOG
xianKOG
2019/03/28 09:29
  • java
  • 点赞
  • 收藏
  • 回答
    私信

0个回复