ZK & Struts2取得真实 IP 地址

ZK & Struts2获得真实 IP 地址
	/**
	 * 得到真实的IP地址
	 * @param request
	 * @return
	 */
	public String getIpAddr() {
		   HttpServletRequest request = null;
		   if(Sessions.getCurrent() != null){//ZK获得Request
			   ServletContext sc = (ServletContext) Sessions.getCurrent().getWebApp().getNativeContext();
			   request = (HttpServletRequest) Executions.getCurrent().getNativeRequest();
		   }else{//Struts2获得Request
			   request = ServletActionContext.getRequest();
		   }
	       String ip = request.getHeader("x-forwarded-for");
	       if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
	           ip = request.getHeader("Proxy-Client-IP");
	       }
	       if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
	           ip = request.getHeader("WL-Proxy-Client-IP");
	       }
	       if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
	           ip = request.getRemoteAddr();
	       }
	       return ip;
	}