java ip吸附_使用Filter过滤非法IP

使用Filter过滤非法IP

有些web系统中会遭受一些不友好的访问,例如在论坛中发送不健康的帖子,博客留言中骂人,这时可以将该用户的ip地址封掉,即该ip地址发出request请求后不进行处理,这时就可以使用Filter来实现。

首先创建一个IPUtil类,里面初始化一些要禁止的IP(实际开发中会从数据库中读取),有时也可将某些ip段屏蔽,例如:192.168.1.*,此时在该ip段内的用户是无法访问系统的,缺点是可能会屏蔽正常访问系统的用户。

package com.monkey1024.util;

import java.util.ArrayList;

import java.util.List;

public class IPUtil {

private static List ipList = new ArrayList<>();

static {

ipList.add("192.168.1.102");

ipList.add("0:0:0:0:0:0:0:1");//本机的ip

}

public static List getIpList() {

return ipList;

}

}

然后创建Filter过滤器来过滤ip,如果请求的ip在禁用ip段内,就会直接return,即该请求不会到达目标资源就会被response:

package com.monkey1024.filter;

import com.monkey1024.util.IPUtil;

import javax.servlet.*;

import javax.servlet.annotation.WebFilter;

import java.io.IOException;

import java.util.List;

@WebFilter(filterName = "Filter",urlPatterns = "/*")

public class Filter implements javax.servlet.Filter {

public void destroy() {

}

public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {

String ip = req.getRemoteAddr();

List ipList = IPUtil.getIpList();

System.out.println(ip);

if (ipList.contains(ip)) {

System.out.println("非法ip");

resp.getWriter().write("非法ip");

return;

}

chain.doFilter(req, resp);

}

public void init(FilterConfig config) throws ServletException {

}

}

在项目的根目录下创建一个index.jsp

hello

启动tomcat,访问系统,被禁用的ip用户是无法访问index.jsp的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值