我的axis2放在tomcat里面,放在客户的外网服务器上. MessageContext mc = MessageContext.getCurrentMessageContext();
HttpServletRequest request = (HttpServletRequest) mc
.getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST);
ip = request.getHeader("x-forwarded-for");
ip+=ip+"||||||" + request.getRemoteAddr();;
下面的返回的结果。奔溃啊。。理论上应该是外网ip才对啊..不管什么地址访问获得都是这个..<ns:getIp2Response xmlns:ns="http://service.totapps.com">
<ns:return>nullnull||||||192.168.255.58</ns:return>
</ns:getIp2Response>
aixs2 ip服务器JavaCSSTomcat
HttpServletRequest request = (HttpServletRequest) mc
.getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST);
ip = request.getHeader("x-forwarded-for");
ip+=ip+"||||||" + request.getRemoteAddr();;
下面的返回的结果。奔溃啊。。理论上应该是外网ip才对啊..不管什么地址访问获得都是这个..<ns:getIp2Response xmlns:ns="http://service.totapps.com">
<ns:return>nullnull||||||192.168.255.58</ns:return>
</ns:getIp2Response>
aixs2 ip服务器JavaCSSTomcat
x-forwarded-for 这个是代理服务器增加的信息,网络设备一般不懂得去增加这种信息。
if (request.getHeader("x-forwarded-for") == null) {
ip=request.getRemoteAddr();
}
ip=request.getHeader("x-forwarded-for");
}
request.getRemoteAddr()这样也得不到吗.
我是这样写的啊。可是返回的值却是...<ns:return>nullnull||||||192.168.255.58</ns:return>
这个可能会得到几种结果:
1、代理服务器的IP地址,也包括反向代理、负载均衡设备;
2、客户机所在网络的外网IP,当共享上网时;
3、客户机的外网IP,当客户机直接ADSL上网时。