我想验证客户端连接到我的Web服务服务器(我使用jboss 7部署服务器)。因此,我需要从他们的请求中获取客户的IP。如何在Java中做到这一点?
答案 0 :(得分:1)
我刚刚开始学习Web服务。 也许这行代码会有所帮助。对于Axis2不太确定,但是使用一些较旧版本的Axis,您可能会这样做。
MessageContext messageContext = MessageContext.getCurrentContext();
String ipAddress = messageContext.getStrProp(Constants.MC_REMOTE_ADDR);
很少有用于获取客户端特定属性的常量。 如有必要,您可能想使用一些自定义标头来获取属性。
答案 1 :(得分:1)
在Axis2中,您可以从MessageContext
获取远程(客户端)IP:
import org.apache.axis2.context.MessageContext;
MessageContext mc = MessageContext.getCurrentMessageContext();
String clientIP = (String) mc.getProperty(MessageContext.REMOTE_ADDR);
参考:AXIS2-1610:需要在服务器端获取客户端IP地址
答案 2 :(得分:0)
我使用的是axis2 1.5.3,我读取了属性“ MessageContext.REMOTE_ADDR”,但它返回了我的axis2.war所在的Jboss应用服务器的IP地址。
我将代码java放在类“ MessageReceiverInOut”中,如何获取执行我的Web服务Axis2的客户端的IP地址?
无论是客户端还是Web应用程序,请致电我的网址https://myDomain/axis2/services/MyService
MyService在axis2.war内部是aar
非常感谢