Java开发的WebService获取客户端IP地址

标签:
webserviceip地址servicecontext |
-
1.基于jax-ws开发的webservice获取客户端ip的方法【在代理类XXXDelegate添加如下代码】:
-
-
import
javax.annotation.Resource; -
import
javax.servlet.http.HttpServletRequest; -
import
javax.xml.ws.WebServiceContext; -
import
javax.xml.ws.handler.MessageContext; -
-
@Resource
-
private
WebServiceContext wsContext; -
-
private
String getClientInfo(){ -
-
MessageContext
mc = wsContext.getMessageContext(); -
HttpServletRequest
request = (HttpServletRequest)(mc.get(MessageContext.SERVLET_REQUEST)); -
String
remortAddress = request.getRemoteAddr(); -
return
(remortAddress); -
}
-
-
2.基于axis发布的webservice获取客户端ip的方法
-
-
public String getClientIpAxis() { -
MessageContext mc = null; -
HttpServletRequest request = null; -
try { -
mc = MessageContext.getCurrentMessageContext (); -
if (mc == null) -
throw new Exception(“无法获取到MessageContext”); -
request = (HttpServletRequest) mc -
System.out.println(“remote ip: ” + request.getRemoteAddr()); -
} catch (Exception e) { -
System.out.println(e.getMessage()); -
e.printStackTrace(); -
} -
return request.getRemoteAddr(); -
} -
-
3.基于xfire发布的webservice获取客户端ip的方法
-
-
public String getClientIpXfire() { -
String ip = “”; -
try { -
HttpServletRequest request = XFireServletController.getRequest(); -
ip = request.getRemoteAddr(); -
} catch (Exception e) { -
System.out.println(“无法获取HttpServletRequest.”); -
e.printStackTrace(); -
} -
return ip; -
}