Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Java > 用Filter实现IP过滤
【标  题】:用Filter实现IP过滤
【关键字】:Filter,IP
【来  源】:http://www.cublog.cn/u/4764/showart.php?id=164796

用Filter实现IP过滤

Your Ad Here
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
     */
  }

} 
您的Java代码安全吗?:【上一篇】
浅析Java中的随机数类:【下一篇】
【相关文章】
  • Eclipse+MyEclipse的配置
  • ACL and IP fragment
  • 非法VoIP检测的技术实现及分析
  • ipfw的使用方法
  • 设置和使用ipfw/natd
  • 纠正一些流传的iptables 脚本的误区
  • 关于iptables的一些高级运用
  • Mapping UNIX pipe descriptors to stdin and stdout
  • 在Eclipse中配置JBOSS
  • 关于搜索引擎页面分析中的 javascript 处理的2个思路
  • 【随机文章】
  • 费马大定理终结者<转自新语丝>
  • 网络IP电话 V1.2 (源代码)
  • 一个简单的计算器
  • C++学习日志三
  • Windows下生成shell的一种新方法
  • oracle tkprof的使用
  • 小叮当也战江湖—VB实例七日谈(六)
  • 使用JXTA实现P2P通信
  • 也来凑华容道的热闹(4)
  • Windows 2003单网卡实现VPN
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.