我的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,请各位大神帮帮忙