|
利用Filter实现IP过滤
发表日期:2007-12-23
|
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 */ }
}
(出处:)
|
|
上一篇:利用Filter检查Request参数
人气:845
下一篇:使用Filter访问Session信息
人气:1490 |
浏览全部J2EE/J2ME的内容
Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐
|
|