`
563525042
  • 浏览: 48318 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

JAVA中IP地址拦截的处理

阅读更多
//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);//跳过拦截
}
}
}
分享到:
评论

相关推荐

    DNS中继服务器的实现(java版)

    检索结果为ip地址0.0.0.0,则向客户端返回“域名不存在”的报错消息(不良网站拦截功能) 检索结果为普通IP地址,则向客户返回这个地址(服务器功能) 表中未检到该域名,则向因特网DNS服务器发出查询,并将结果返给...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例071 验证IP地址的有效性 90 实例072 鉴别非法电话号码 91 4.3 操作字符串 92 实例073 根据标点符号对字符串进行分行 92 实例074 将字符串的每个字符进行倒序输出 94 实例075 获取字符串中汉字的个数 94 实例076 ...

    轻量级JAVA实时业务风控系统框架.zip

    redis中数据结构sortedset,是个有序的集合,集合中只会出现最新的唯一的值。利用sortedset的天然优势,做频数统计非常有利。 比如1小时内某ip上出现的账号数量统计: 保存维度 ZADD key score member(时间...

    java8源码-baseproject:基础项目

    java8 源码 本项目是一个分布式的App服务端快速开发框架,...以ip地址注册到注册中心提供服务 环境配置 区分有三种环境dev、test、prod,不同环境会加载不同的配置文件 Gradle环境配置: gradle.properties里设置profil

    java8看不到源码-NioSmtpClient:基于Netty的smtp客户端

    中经过充分测试并大量使用。 Maven 依赖 &lt; dependency &gt; &lt; groupId &gt;com.hubspot&lt;/ groupId &gt; &lt; artifactId &gt;NioSmtpClient&lt;/ artifactId &gt; &lt; version &gt;1.1.0&lt;/ version &gt; &lt;/ dependency &gt; ...

    Java学习笔记-个人整理的

    {2.8}框架中移动的小球}{59}{section.2.8} {2.9}抽象与接口}{59}{section.2.9} {2.10}访问控制}{60}{section.2.10} {2.10.1}类的属性}{60}{subsection.2.10.1} {2.10.2}类的方法}{61}{subsection.2.10.2} {...

    连连银通支付WEB-DEMO开发包

    注: 申请表在目录中 《连连银通商户域名IP应用标识配置申请表V2.1.1》 //域名IP应用标识申请表 4、demo 接入指南 4.1、php log.txt 可查看商户情况的日志,会打印商户请求的待签名串。 llpay.config.php ...

    C#.Net远程屏幕监控

    其实本人喜欢写诸如灰鸽子类的远程管理软件, 本人用C#写了一个已经写的差不多了,远程屏幕监控其实就是里面的一部分只是我把它提取出来了修改了一下,但是写着写着我发现了一个问题,那就是防火墙拦截的问题...

    H3C云计算&亚信安全技术专家个人博客文章汇总集.rar

    16 DS7.5控制台通讯方式由主机名改为IP地址的设置 17 DS7.5开启防火墙策略后,会有大量IPV6的拦截日志,影响控制台的性能 18 关于SPLX3.0离线更新问题 19 DS 7.5 FW策略学习小结 20 DS for Fusion SVM ds_...

    基于vue+node+mongodb开发的仿美团外卖点餐系统源码.zip

    请求拦截/响应拦截 路由守卫 店铺信息的增删改查 登录用户权限 【技术栈】 Webpack-cli搭建项目(vue2.0/vue-cli3.0) Vue全家桶(vue+vuex+vue-router) CSS预处理器less axios与后端进行请求数据 网络服务器存储图片...

    在Spring MVC或Spring Boot中使用Filter打印请求参数问题

    使用Spring MVC或Spring Boot中打印或记录日志一般使用AOP记录Request请求和Response响应参数,在不使用AOP的前提下,如果在Filter中打印日志,在打印或消费请求类型为Content-Type:application/json的请求时,会...

    Z-Blog 2.0 Doomsday Build 121221

    IP追溯、数字过滤、火星文过滤、自定义提示语、直接拦截等功能,加上利用正则制作的黑词列表和敏感词列表,帮助您更好拦截SPAM 支持智能手机管理博客 手机wap功能进一步增强,支持图片上传,支持文章管理,支持...

    spring security 参考手册中文版

    远程处理 - spring-security-remoting.jar 25 Web - spring-security-web.jar 25 配置 - spring-security-config.jar 26 LDAP - spring-security-ldap.jar 26 ACL - spring-security-acl.jar 26 CAS - spring-...

    智能仓库管理系统,前台vue+bootstrap,后台springBoot

    ##其他说明 ###在线api文档 在线api文档使用Swagger2,访问地址:http://ip:port/swagger-ui.html 演示地址 gitee.xunchenglu.com 功能支持 自定义工程根目录 支持https 项目结构 build: 项目启动文件存放目录 app: ...

Global site tag (gtag.js) - Google Analytics