简体   繁体   English

如何在没有Servlet筛选器的情况下在JAX RPC Web服务中获取客户端的IP?

[英]How to get client's IP in JAX RPC web services without Servlet Filter?

I have to log the client's IP address who is using my JAX RPC web service server. 我必须记录使用我的JAX RPC Web服务服务器的客户端的IP地址。

IBM adviced to use servlet filters and get the IP using HTTP Request: http://www-01.ibm.com/support/docview.wss?uid=swg21304368 IBM建议使用servlet过滤器并通过HTTP请求获取IP: http ://www-01.ibm.com/support/docview.wss?uid=swg21304368

Is there a different way to get the request? 有没有其他方法可以获取请求? I m using IBM WAS 8.5 and SOAP 1.2 for the server side. 我在服务器端使用IBM WAS 8.5和SOAP 1.2。 Thnx n

This worked for me :) 这对我有用:)

import com.ibm.ws.webservices.engine.MessageContext;
import com.ibm.ws.webservices.engine.transport.http.HTTPConstants;

..... .....

HttpServletRequest request = (HttpServletRequest) MessageContext.getCurrentThreadsContext().getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST);

String clientIpAddress = request.getHeader("X-FORWARDED-FOR");

if (clientIpAddress == null) {
    clientIpAddress = request.getRemoteAddr();
}

System.out.println(clientIpAddress);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM