第一步:先在项目src文件下建立一个ipConfig.properties文件,加入黑白名单的ip
1)ipConfig.properties:
#单个IP地址的配置,多个之间用逗号或分好隔开
allowIP=192.168.1.15;127.0.0.1;
#IP地址区间方式的配置,多个区间用逗号或分好隔开
allowIPRange=172.20.32.10-172.20.32.11;172.20.32.88-172.20.32.89;
#通配符,多个用逗号或分好隔开
allowIPWildcard=192.168.1.*;
二,建IpFilter,过滤器文件
/**
- 过滤器 功能:对访问者IP进行限制访问
- @author hht *
- @serialData 2018-09-28 *
-
@version 1.0 */
public class IpFilter implements Filter{
//用来存放初始化后的IP白名单列表对应的正则表达式
private List<String> allowList = new ArrayList<String>();@Override
public void init(FilterConfig arg0) throws ServletException {
try {
System.out.println("过滤器IpFilter开始初始化,功能:IP访问限制");
initConfig();//在过滤器初始化的时候初始化白名单列表
} catch (IOException e) {
e.printStackTrace();
}
}@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
//获取访问的IP地址
String remoteAddr = request.getRemoteAddr();//System.out.println("===============" + remoteAddr); //如果allowList为空,则认为没做限制,不为空则检查是否限制 if(allowList.size() == 0 || allowList == null) { filterChain.doFilter(request, response); } else { Boolean flag = false; //访问标志,默认为false,限制访问 //进行逐个检查 for(String