java web限制访问的ip地址.doc
java服务器端的例子类:importjava.io.IOException;importjava.util.Date;importjavax.servlet.Filter;importjavax.servlet.FilterChain;importjavax.servlet.FilterConfig;importjavax.servlet.ServletException;importjavax.servlet.ServletRequest;importjavax.servlet.ServletResponse;importjavax.servlet.http.HttpServletRequest;mons.logging.Log;mons.logging.LogFactory;importorg.springframework.web.context.WebApplicationContext;importorg.springframework.web.context.support.WebApplicationContextUtils;publicclassIpFilterimplementsFilter{privatefinalLoglogger=LogFactory.getLog(this.getClass());privatestaticStringforward=null;privateStringipString=null;privateICheckAdminLoginCheckAdminLoginService=null;//privateICheckAdminLoginCheckAdminLoginService=newCheckAdminLogin();privateFilterConfigfilterConfig=null;/***Filterinit*/publicvoidinit(FilterConfigfilterConfig){this.filterConfig=filterConfig;//ipString=filterConfig.getInitParameter(“allowIp“);//System.out.println(“1、获取初始化IP:“+ipString);this.forward=filterConfig.getInitParameter(“forward“);}publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)throwsServletException,IOException{WebApplicationContextwac=WebApplicationContextUtils.getWebApplicationContext(filterConfig.getServletContext());this.CheckAdminLoginService=(ICheckAdminLogin)wac.getBean(“checkAdminDAO“);//StringipAddr=getIpAddr((HttpServletRequest)request);//StringipAddrTrim=Tools.checkNull(ipAddr);//System.out.println(“2、获取当前登录人员IP:“+ipAddr);//System.out.println(“1、获取IP:“+ipString);//inti=ipAddrTrim.lastIndexOf(“.“);//intr=ipString.lastIndexOf(“.“);//StringrelPscope=ipString.substring(0,r);//过滤lP段//intintRtn=CheckAdminLoginService.checkAdminLoginIp(ipAddr);//System.out.println(“判断之后返回的结果:“+intRtn);//if(relPscope.equals(ipAddrTrim.substring(0,i))){//request.setAttribute(“error“,“禁止访问的IP地址!“);登录错误//request.getRequestDispatcher(forward).forward(request,response);//重定向到adminlogin.jsp页面//return;//}//else{//chain.doFilter(request,response);//}StringipAddr=getIpAddr((HttpServletRequest)request);System.out.println(“2、获取当前登录人员IP:“+ipAddr+“--登录时间:“+newDate());intintRtn=CheckAdminLoginService.checkAdminLoginIp(ipAddr);//System.out.println(“判断之后返回的结果:“+intRtn);if(intRtn==0){//返回0不允许访问request.setAttribute(“error“,“限制访问的IP地址!“);登录错误request.getRequestDispatcher(forward).forward(request,response);//重定向到adminlogin.jsp页面return;}elseif(intRtn==1){//进入后台的登录页面chain.doFilter(request,response);}}/***Filterclean-up*/publicvoiddestroy(){//Notmuchtodo.}/***获取客户端IP地址*/protectedStringgetIpAddr(HttpServletRequestrequest){//Stringip=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();//}//returnip;if(request.getHeader(“x-