import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.xml.ws.WebServiceContext;
import org.apache.axis.MessageContext;
import org.apache.axis.transport.http.HTTPConstants;
import org.apache.cxf.transport.http.AbstractHTTPDestination;
import org.codehaus.xfire.transport.http.XFireServletController;
/**
* @Author MH
* @version 2011-12-2 上午09:31:49
*/
public class ClientIpXfire {
@Resource
private WebServiceContext context;
/**
* CXF獲取客戶端IP地址
*
* @Author MH
* @return
*/
public String getClientIpCxf() {
try {
javax.xml.ws.handler.MessageContext ctx = context
.getMessageContext();
HttpServletRequest request = (HttpServletRequest) ctx
.get(AbstractHTTPDestination.HTTP_REQUEST);
String ip = request.getRemoteAddr();
return ip;
} catch (Exception e) {
System.out.println("沒法獲取對方主機IP");
e.printStackTrace();
return null;
}
}
/**
* XFIRE獲取客戶端IP地址
*
* @Author MH
* @return
*/
public static String getClientIpXfire() {
String ip = null;
try {
HttpServletRequest request = XFireServletController.getRequest();
ip = request.getRemoteAddr();
return ip;
} catch (Exception e) {
System.out.println("沒法獲取對方主機IP");
e.printStackTrace();
return null;
}
}
/**
* AXIS獲取客戶端IP地址
*
* @Author MH
* @return
*/
public static String getClientIpAxis() {
try {
MessageContext mc = MessageContext.getCurrentContext();
HttpServletRequest request = (HttpServletRequest) mc
.getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST);
System.out.println("remote ip: " + request.getRemoteAddr());
return request.getRemoteAddr();
} catch (Exception e) {
System.out.println("沒法獲取對方主機IP");
e.printStackTrace();
return null;
}
}
}java