服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

用filter实现ip过滤

import java.io.ioexception;import java.util.stringtokenizer;import javax.servlet.filter;import javax.servlet.filterchain;import javax.servlet.filterconfig;import javax.servlet.servletexception;import javax.servlet.servletrequest;import javax.servlet.servletresponse;import javax.servlet.http.httpservletresponse;public class ipfilter implements filter {  private filterconfig config;  public final static string ip_range = "192.168";  public ipfilter() {  }  public void init(filterconfig filterconfig) throws servletexception {    this.config = filterconfig;  }  public void dofilter(servletrequest request, servletresponse response,      filterchain chain) throws ioexception, servletexception {    string ip = request.getremoteaddr();    httpservletresponse httpresp = null;    if (response instanceof httpservletresponse)      httpresp = (httpservletresponse) response;    stringtokenizer toke = new stringtokenizer(ip, ".");    int dots = 0;    string byte1 = "";    string byte2 = "";    string client = "";    while (toke.hasmoretokens()) {      ++dots;      //if we've reached the second dot, break and check out the indx      // value      if (dots == 1) {        byte1 = toke.nexttoken();      } else {        byte2 = toke.nexttoken();        break;      }    }//while    //piece together half of the client ip address so it can be compared    // with    //the forbidden range represented by ipfilter.ip_range    client = byte1 + "." + byte2;    if (ip_range.equals(client)) {      httpresp.senderror(httpservletresponse.sc_forbidden,          "that means goodbye forever!");    } else {      chain.dofilter(request, response);    }  }// dofilter  public void destroy() {    /*     * called before the filter instance is removed from service by the web     * container     */  }} 

扫描关注微信公众号