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

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

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

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

每次发短信,都写入redis:

Java代码  

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

 

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

Java代码  

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

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

Java代码  

  1. protected Map<String, String> clearRecordsGreaterThanHour(Map<String, String> ipMap) {  
  2.   
  3.         ArrayList<Long> t = new ArrayList<Long>();  
  4.   
  5.         for (String k : ipMap.keySet()) {  
  6.   
  7.             Long i = new Long(k);  
  8.             if (System.currentTimeMillis() - i.longValue() > 60*60*1000) {  
  9.                 t.add(i);  
  10.             }  
  11.         }  
  12.   
  13.         for (Long i : t){  
  14.             ipMap.remove(i.toString());  
  15.         }  
  16.   
  17.         return ipMap;  
  18.   
  19.     }  

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

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

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

 

时间: 2024-10-25 01:22:31

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

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

判断一个小时之内是否重复发送了10次短信 并且是同一个手机 每次发送短信,要写入当前时间戳到redis: Java代码   String mobile="13718486139";           String time=String.valueOf(DateTimeUtil.getCurrentMillisecond());           RedisHelper.getInstance().saveKeyCache("limit_one_hour", m

如何在服务器端限制一分钟之内不能重复发送短信

直接上代码: Java代码   String lastSendSMSTime=getKeyCache(request, response, mobile);           if(StringUtil.isNullOrEmpty(lastSendSMSTime)){               saveKeyCache(request, response, mobile, String.valueOf(DateTimeUtil.getCurrentTimeSecond())/*1436319

限制一分钟只能发送一次手机短信

为什么要限制一分钟之内只能发送一次手机短信呢? 防止恶意攻击. 什么场景需要发送手机短信? (a)手机号注册 (b)通过手机找回密码 (c)手机号绑定,手机号换绑 (d)转账时手机号接收动态口令(一次一密)   1,前端 一般前端会有倒计时,在倒计时的过程中是不允许点击"发送短信"按钮的: 但是如果用户刷新页面呢? 如果刷新页面,那么页面的倒计时就会中断.  这是需要服务器端提供支持:服务器端要记录上次发送短信的时间戳   2,后台 第一次发送时lastSendSMSTime 为nul

苹果iphone5重复提醒收到了新短信设置方法

短信的重复提醒功能可以设置具体的重复次数,每次提醒时间的间隔是2分钟左右,最多可以设置为10次.也就是在20分钟之内可以接到重复提醒,离开手机超过20分钟就要主动查看是否有新短信了.            短信重复提醒的设置方法:            1.解锁后点击桌面的"设置"图标.                    2.在设置界面中的选项中,找到并点击"通知".                                   3.在通知界面的"

发送黄段子关停短信律师上书质疑联通违法

核心提示:有专家认为,电信运营商应该采取一些对用户告知.警示的措施,而不应采取关闭短信甚至停机这样霸道的措施. 每经记者 谢晓萍 发自北京 发送黄段子将被关停短信功能一事日前引发了各界的争议.昨日(1月21日),<每日经济新闻>了解到,该争议引发了法律界人士的关注."我们已向工信部发出了举报信,希望有关部门可以处理."北京市瀚翔律师事务所律师王雅军在接受记者采访时表示. 关停短信无法律依据 据王雅军透露,联通公司将利用俗称手机"滤霸"的软件,根据公安部门

上海移动发送世博园区告知短信1.75亿条

本报讯 (记者 沈敏岚)发送园区告知短信突破1.75亿条,世博无线官网点击量超过1.6亿次,中国移动上海公司圆满完成历时184天的全方位世博运营保障,成功兑现"最前沿的科技""最精彩的展示""最贴心的服务"的世博三最承诺. 记者了解到,在长达184天的世博开园期间,中国移动上海公司圆满完成世博移动通信保障任务,在世博园区内外的网络总体运行平稳,世博业务应用畅通. 为助力科技世博,中国移动还在世博园区建立全球首个TD-LTE规模演示网,在政府部门的

java发送短信系列之限制发送频率_java

本篇是发送短信的第二部分, 这里我们介绍一下如何限制向同一个用户(根据手机号和ip)发送短信的频率. 1.使用session 如果是web程序, 那么在session中记录上次发送的时间也可以, 但是可以被绕过去. 最简单的, 直接重启浏览器 或者 清除cache等可以标记session的数据, 那么就可以绕过session中的记录. 虽然很多人都不是计算机专业的, 也没学过这些. 但是我们需要注意的是, 之所以限制发送频率, 是为了防止"短信炸弹", 也就是有人恶意的频繁的请求向某个

搭建亿万级别短信服务发送平台

写在开始 阿里云的小伙伴们,走过路过,千万不要错过.之所以起这么唬人的标题,其实就是想让路过的您点一下,顺便关注一下博主.当然你也可以默默地顶完文章然后转身就走人,但是动作一定要快,姿势必须要帅,深藏功名尘与土. 阿里大鱼 阿里大鱼去哪了,这么牛掰的名字,居然被阿里云抛弃了? 显然不是,进入短信后台.阿里云还是给了提示:原短信服务已停止开通. 感谢你对短信服务产品的支持,原短信服务(整合在消息服务内)已停止开通.请前往短信服务控制台,开通新短信服务. 很明显短信服务被整合到消息服务中去了,阿里大

发送短信按钮倒计时服务器端支持

发送短信按钮倒计时服务器端支持 发送成功之后才计时:     Java代码   /***       * 服务器端启动倒计时,即记录时间戳       *       * @param mobile       */       private void setSMSLimit(String mobile) {           HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRe