81,092
社区成员
发帖
与我相关
我的任务
分享
public class IpFilter extends IpFilterAdapter{
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
//这是一个例子 你自己看看 根据截取的内容 来设置你要过滤的IP
HttpServletRequest request1 = (HttpServletRequest)request;
HttpServletResponse response1 = (HttpServletResponse)response;
//获得客户端的IP地址
String ip = request.getRemoteAddr() + "";
System.out.println(ip);
//以转义字符\\对.进行转义 拆分 一般用,- | 用的比较多 用.就回出错 需要用转义字符转义
/*
ips[0] = 192
ips[1] = 168
ips[2] = 2
ips[3] = 47
*/
String ips[] = ip.split("\\.");
//192.168.0.1
int ad = Integer.parseInt(ips[3]);
/*
* 以上拆分方法还可以用以下代替:
* int ad = Integer.parseInt(ip.substring(ip.lastIndexOf(".") + 1));
*/
if(ad >= 1 && ad <= 50){
/*response.setContentType("text/html;charset=utf-8");
response.getWriter().print("您没有权限访问");*/
request1.getRequestDispatcher("error.jsp").forward(request1, response1);
}
else{
chain.doFilter(request, response);
}
}
}
public static boolean check(String ip) {
try {
if (!ip.startsWith("192.168.0.") && !ip.startsWith("192.168.1.")) return false;
if (Integer.parseInt(ip.substring(10))<1 || Integer.parseInt(ip.substring(10))>100) return false;
} catch (Exception e) {return false;}
return true;
}
String ip = "192.168.1.100";
String ips[] = ip.split("\\.");
//192.168.0.1
String ad = ips[2];
String ad11 = ips[3];
if ((ad11.compareTo("100")<=0)&&ad.compareTo("1")<=0&& (ad.compareTo("1")<=0 &&ad11.compareTo("100")<=0) ){
System.out.println("yes");
}
String ip = request.getRemoteAddr();
if (ip.compareTo("192.168.0.1")>=0 && ip.compareTo("192.168.0.100")<=0
|| ip.compareTo("192.168.1.1")>=0 && ip.compareTo("192.168.1.100")<=0) {
//......
}