`

判断一个小时之内是否重复发送了10次短信(2)

    博客分类:
  • Java
阅读更多

判断一个小时之内是否重复发送了10次短信(2)

可以先参考我上一篇博客:

http://huangkunlun520.blog.51cto.com/2562772/1705080

每次发短信,都写入redis:

RedisHelper.getInstance().saveKeyCache("limit_one_hour"+ip, "" + System.currentTimeMillis(), "");

 

同时获取该ip对应的所有记录:

ipMap = RedisHelper.getInstance().getAllKeyCache("limit_one_hour"+ip);

 然后删除掉超过一个小时的记录:

protected Map<String, String> clearRecordsGreaterThanHour(Map<String, String> ipMap) {

        ArrayList<Long> t = new ArrayList<Long>();

        for (String k : ipMap.keySet()) {

            Long i = new Long(k);
            if (System.currentTimeMillis() - i.longValue() > 60*60*1000) {
                t.add(i);
            }
        }

        for (Long i : t){
            ipMap.remove(i.toString());
        }

        return ipMap;

    }

 然后再判断 ipMap是否超过10条

注意:此时ipMap 中的记录均是相比于现在一个小时之内的.

这种思路与上一篇博客的思路完全不同.

 

0
1
分享到:
评论

相关推荐

    java发送短信系列之限制日发送次数

    【Java 发送短信系列之限制日发送次数】 在Java实现短信发送功能时,为了防止恶意攻击或误操作导致大量短信的滥用,通常需要对同一用户(通过手机号码和IP地址识别)的日发送次数进行限制。本篇将详细介绍如何在...

    ZOGLAB短信控件包更新_090901

    2:表示发送短信失败,内容过长; 3:表示发送短信失败,内容为空; 4:表示发送短信失败,号码错误; 3.2 接收信息响应事件,原型如下: void RecResponse( [in] long nAns) nAns 0:表示接收短信失败 1:表示接收短信...

    jQuery实现倒计时重新发送短信验证码功能示例

    例如,为了防止用户在短时间内重复发送验证码短信,从而给短信服务商造成不必要的负担,或者避免恶意使用接口,通常会设置一个限制时间。在这个时间范围内,用户是不能再次发送验证码请求的,这样既保护了用户的利益...

    java开源包4

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    中通网通信试题大全[网络优化试题之是非题].pdf

    - **解释**: 1Erl是一个话务量单位,表示一个信道一小时内被完全占用的情况。每个用户在同一时间内只能占用一个信道,因此一个用户的最大话务量是1Erl。 #### 4. 邻频干扰保护比 - **知识点**: GSM规范中规定的邻频...

    vc++ 应用源码包_2

    压缩包内有两个源码包,一个是注册机源程序,另一个是解密机的源程序,一套完整的参考实例。 VC+MapX源码含GPS跟踪演示 VC3D 利用VC编程在界面上实现3D文字 在MFC应用程序中浏览PDF、Word文档文件 vcdialog 自...

    JAVA上百实例源码以及开源项目源代码

    多人聊天+用户在线 21个目标文件 摘要:JAVA源码,媒体网络,山寨QQ,Java聊天程序 Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构, 当用户发送第一次请求的时候,验证用户登录,创建一个该...

    vc++ 应用源码包_1

    压缩包内有两个源码包,一个是注册机源程序,另一个是解密机的源程序,一套完整的参考实例。 VC+MapX源码含GPS跟踪演示 VC3D 利用VC编程在界面上实现3D文字 在MFC应用程序中浏览PDF、Word文档文件 vcdialog 自...

    vc++ 应用源码包_6

    压缩包内有两个源码包,一个是注册机源程序,另一个是解密机的源程序,一套完整的参考实例。 VC+MapX源码含GPS跟踪演示 VC3D 利用VC编程在界面上实现3D文字 在MFC应用程序中浏览PDF、Word文档文件 vcdialog 自...

    vc++ 应用源码包_5

    压缩包内有两个源码包,一个是注册机源程序,另一个是解密机的源程序,一套完整的参考实例。 VC+MapX源码含GPS跟踪演示 VC3D 利用VC编程在界面上实现3D文字 在MFC应用程序中浏览PDF、Word文档文件 vcdialog 自...

    vc++ 应用源码包_3

    压缩包内有两个源码包,一个是注册机源程序,另一个是解密机的源程序,一套完整的参考实例。 VC+MapX源码含GPS跟踪演示 VC3D 利用VC编程在界面上实现3D文字 在MFC应用程序中浏览PDF、Word文档文件 vcdialog 自...

    vc++ 开发实例源码包

    2:FTP下载支持多个站点同时下载一个文件(同时支持断点续传). 3:可以在不下载ZIP.RAR.ISO文件的情况下查看文件里面的目录文件. 4:支持多语言. 5:操作综合其它软件. 6:自定义快捷键. 7:在IE工具栏上加按钮,可以直接...

    WINCC全局脚本手册

    虽然提供的部分内容难以直接解析出具体的案例,但基于全局脚本的功能特性,我们可以设想一个简单的应用场景——温度监控系统中的报警逻辑处理: 1. **需求分析**:当温度超过设定阈值时,触发报警,并发送短信通知...

    网络验证 网络验证防破解的一些思路

    例如,如果发现某个IP地址在短时间内发送了大量的重复请求,则可能是自动化攻击。 5. **文件完整性校验** - 对系统中的关键文件进行定期的MD5校验,以检测文件是否被篡改。这种做法可以及时发现潜在的安全威胁,...

    南安2016年事业编招聘考试真题及答案解析版.docx

    相比之下,选项C更符合题干中的描述,即制度的变迁是一个渐进的过程。因此,正确答案是C。 ### 题目10:主旨大意 **题干**:幸运的机会就像银河中的星星一样,虽然每颗星星单独看不太起眼,但作为一个整体却璀璨...

    网趣网上购物系统时尚版V13.0

    应用户强烈要求,时尚版具有商品批量添加功能,可自定义一次性添加的商品个数,可一次提交保存所有商品信息,抛弃单调、重复的工作,网趣时尚版新版脱颖而出,让您的管理工作更轻松,管理更方便! 十、订单自动...

    网趣网上购物系统的部分特点与精华

    应用户强烈要求,时尚版具有商品批量添加功能,可自定义一次性添加的商品个数,可一次提交保存所有商品信息,抛弃单调、重复的工作,网趣时尚版新版脱颖而出,让您的管理工作更轻松,管理更方便! 十、订单自动...

Global site tag (gtag.js) - Google Analytics