//IP地址拦截,在web.xml中的配置
<!-- ip filter -->
<filter>
<filter-name>setIpByIpFilter</filter-name> //拦截器的名称自己设置
<filter-class>com.rbt.filter.BanIpFilter</filter-class> //启用拦截器的Action类
</filter>
<filter-mapping>
<filter-name>setIpByIpFilter</filter-name> //拦截器的的名称,跟上面的名称是相同
<url-pattern>/*</url-pattern> //要拦截的页面,*表示所有请求的页面都进行拦截
</filter-mapping>
//IP拦截器处理的Action类
public class BanIpFilter extends CreateSpringContext implements Filter
{
/*
* 方法描述:提供IP拦截的方法
*/
public void doFilter(ServletRequest req, ServletResponse resp,FilterChain chain) throws ServletException, IOException
{
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
String requestIp = request.getRemoteAddr();
String requestUrl = request.getRequestURL().toString();
String toUrl = "/include/IpLimit.jsp";//跳转到限制IP提示页面
Map pageMap = new HashMap();
if(requestIp!=null && !requestIp.equals(""))
pageMap.put("ip", requestIp);
IBan_IpService ban_ipService = (IBan_IpService)getContext().getBean("ban_ipService");//获取数据库的IP地址
int count = ban_ipService.getBanIpCount(pageMap);//数据库查询IP是否在数据库中。如果count=0就跳过拦截,否则就进行拦截;
if(count!=0 && requestUrl.indexOf(toUrl) == -1)//匹配数据库限制IP
{
response.sendRedirect(toUrl);//直接跳转到拦截页面
}
else
{
chain.doFilter(req, resp);//跳过拦截
}
}
}
分享到:
相关推荐
IP拦截器的主要任务是检查请求的源IP地址,如果该地址存在于黑名单中,拦截器会阻止其访问;相反,如果IP地址在白名单中,允许其通过。这个Java示例可能包含了一个用于处理这种逻辑的类或者模块。 描述中提到的...
本文将深入探讨如何利用Java编程语言实现对IP和TCP协议数据包的拦截与分析,以便获取IP地址的详细信息。 首先,我们需要理解IP(Internet Protocol)和TCP(Transmission Control Protocol)的基本概念。IP协议负责...
最后,`KeyBoardListener.java`文件,这个类实现了键盘监听器,可能用于拦截用户的键盘输入,确保输入的字符符合IP地址的规范。例如,它可能阻止用户输入非法字符,或者在用户按下回车键时触发IP地址的转换和验证...
"IP地址段的过滤,限制IP,限制主机访问"这个主题涉及到如何通过编程手段实现对网络访问的精细化管理,尤其是在Java Web环境中。以下是一些相关的知识点: 1. **IP地址与主机名**:IP地址是互联网上设备的唯一标识...
在Java中,获取客户端真实IP地址可以通过HttpServletRequest对象获取。 HttpServletRequest对象中包含了客户端请求的信息,包括客户端的IP地址。有两种方式可以获取客户端真实IP地址,一种是直接访问服务器端,另一...
我们可以在拦截记录中找到 Source IP,也就是需要被加入到白名单中的 IP 地址。 第三步:将 IP 地址加入到白名单中。我们可以将修改好的文件(文件名可以自定义,只要保证后缀是 .xml 即可)放到 /ecology/WEB-INF/...
在Java编程中,获取客户端IP地址以及其归属地是一项常见的需求,这主要涉及到网络协议的理解以及第三方库的使用。在Web应用中,服务器通常需要识别来访用户的地理位置信息,以便进行个性化服务、安全控制或者数据...
通过创建自定义的拦截器,利用 Spring 的 HandlerInterceptor 接口,可以轻松地在请求处理之前检查客户端的 IP 地址。示例代码中,首先定义了一个黑名单 IP 列表,并在 preHandle 方法中判断请求的 IP 是否在黑名单...
我们的实现功能是写一个拦截器来拦截掉黑名单IP,并且额外增加一个接口,将IP地址添加到Redis中,并返回Redis中当前全部IP。 定义拦截器 在Spring Boot中,我们可以使用@Aspect注解来定义一个拦截器。我们可以使用...
它遵循Servlet规范中的Filter接口,允许开发者在请求到达目标Servlet或JSP之前以及响应离开Servlet之后进行拦截和处理。Filter的生命周期包括初始化、过滤请求和销毁三个阶段。 1. 初始化(init) 当应用服务器(如...
在这个类中,我们可以实现preHandle方法来判断用户的IP地址是否在黑名单中。如果用户的IP地址在黑名单中,我们可以禁止用户访问网页。 五、总结 在本文中,我们介绍了如何使用SpringBoot拦截器来实现IP黑名单实例...
Servlet是Java编写的小型服务器端程序,可以拦截并处理特定的HTTP请求。当URL访问图片时,Servlet可以捕获请求,检查访问权限,然后决定是否返回图片。 4. **权限验证**: 验证用户是否有权访问图片的方法有很多,...
在doFilter方法中,我们首先获取用户的ip地址,然后检查这个ip是否已经被限制。如果已经被限制,则返回403状态码,否则,继续执行后续的操作。 在 IpFilter 类中,我们还定义了一些静态常量,例如LIMITED_TIME_...
在实际操作中,开发者可能需要根据用户的类型(如管理员、普通用户、未注册用户)或特定的访问条件(如IP地址、设备类型)来定制登录页面。这通常涉及到在配置文件中定义拦截规则,编写中间件或过滤器代码,以及设计...
下面是一个简单的示例方法,用于从`HttpServletRequest`对象中提取客户端IP地址: ```java public static String getIpAddr(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); ...
在某些情况下,可能需要对IP地址进行匿名化处理,只保留部分信息用于统计。 通过这样的设计,我们可以有效地监控和分析服务器的访问情况,从而更好地理解用户行为,优化服务性能,甚至发现潜在的DDoS攻击等安全问题...
这通常涉及到网络协议中的TCP/IP协议栈,因为每个网络设备在互联网上都有一个唯一的IP地址。项目可能使用了Spring Security或自定义的过滤器实现此功能,根据预定义的IP白名单或黑名单来控制访问权限。 2. **请求...
可以使用Filter或Interceptor拦截请求,然后在相应的处理方法中增加PV。对于UV,我们需要考虑如何识别唯一访客。通常,如果浏览器允许,可以使用Cookie存储访客ID,如果Cookie不可用,可以根据IP地址进行统计,但要...
// 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址; } } ``` 在上面的代码中,我们实现了 `HandlerInterceptor` 接口,并重写了 `preHandle` 方法,该方法将在请求处理过程中的某个点截断请求...
这些数据包通常包含源和目标IP地址、端口号、协议类型以及传输的数据内容。在Java中实现抓包功能,我们需要依赖特定的库或API。 3. **JPCAP**: JPCAP是Java Packet Capture的缩写,它是Java的一个开源库,提供了一...