一种基于脚本的流量防刷方法及系统的制作方法

文档序号:8301647阅读:441来源:国知局
一种基于脚本的流量防刷方法及系统的制作方法【
技术领域
】[0001]本发明涉及一种基于脚本的流量防刷方法及系统。【
背景技术
】[0002]apache上增加mod_evasive模块并编写相对应的规则来实现对访问量的控制,nginx上增加HttpLimitZoneModule与HttpLimitReqModule模块并编写相对应的规则来实现对访问量的控制。[0003]缺点:1、要针对不同的web服务去编写不同的规则,没有通用性;[0004]2、不能根据系统当前负载与当前的状态情况进行限制;[0005]3、限制用户后不能自动解除限制。【
发明内容】[0006]本发明要解决的技术问题,在于提供一种基于脚本的流量防刷方法及系统,使得防刷流量更加彻底。[0007]本发明方案之一是这样实现的:一种基于脚本的流量防刷方法,包括如下步骤:[0008]步骤1、每t分钟,从网络日志中取出该时间段内的访问日志,t为正整数;[0009]步骤2、根据所述访问日志取出其中所有访问ip;[0010]步骤3、统计出每个访问ip的访问次数;[0011]步骤4、把访问次数大于限定量值的ip进行限制。[0012]进一步地,还包括步骤5、对限制的ip限定h小时后解除限制,h为正整数。[0013]进一步地,步骤4进一步具体为:若系统当前负载小于限定值时对访问ip不做限制,否则把访问次数大于限定量值的ip进行限制。[0014]本发明方案之二是这样实现的:一种基于脚本的流量防刷系统,包括如下模块:[0015]获取日志模块,每t分钟,从网络日志中取出该时间段内的访问日志,t为正整数;[0016]获取ip模块,根据所述访问日志取出其中所有访问ip;[0017]获取访问次数模块,统计出每个访问ip的访问次数;[0018]限制模块,把访问次数大于限定量值的ip进行限制。[0019]进一步地,还包括解除限制模块,对限制的ip限定h小时后解除限制,h为正整数。[0020]进一步地,限制模块进一步具体为:若系统当前负载小于限定值时对访问ip不做限制,否则把访问次数大于限定量值的ip进行限制。[0021]本发明具有如下优点:通用性:基于脚本来实现,不论是nginx还是apache都能使用,不用再重新修改;动态根据系统当前的压力状态进行限制,当访问次数据大于设定值,但在系统负载许可的情况下,不做限制。【附图说明】[0022]下面参照附图结合实施例对本发明作进一步的说明。[0023]图1为本发明方法执行流程图。【具体实施方式】[0024]如图1所示,本发明基于脚本的流量防刷方法,包括如下步骤:[0025]步骤1、每t分钟,从网络日志中取出该时间段内的访问日志,t为正整数;[0026]步骤2、根据所述访问日志取出其中所有访问ip;[0027]步骤3、统计出每个访问ip的访问次数;[0028]步骤4、若系统当前负载小于限定值时对访问ip不做限制,否则把访问次数大于限定量值的ip进行限制;[0029]步骤5、对限制的ip限定h小时后解除限制,h为正整数。[0030]本发明基于脚本的流量防刷系统,包括如下模块:[0031]获取日志模块,每t分钟,从网络日志中取出该时间段内的访问日志,t为正整数;[0032]获取ip模块,根据所述访问日志取出其中所有访问ip;[0033]获取访问次数模块,统计出每个访问ip的访问次数;[0034]限制模块,若系统当前负载小于限定值时对访问ip不做限制,否则把访问次数大于限定量值的ip进行限制;[0035]解除限制模块,对限制的ip限定h小时后解除限制,h为正整数。[0036]一种具体实施例:[0037]1.分析apache日志,取出最后3分钟时间内的访问日志;[0038]2.根据这3分钟的访问日志取出这个时间的所有访问ip;[0039]3.把这个时间段的ip进行排序,统计出访问每个ip的访问次数;[0040]4.判断系统当前负载情况,系统负载允许时不做限制,负载高时往下走限制流程;[0041]5.把访问次数大于一个量值的ip利用iptables进行限制不允许访问;[0042]6.每天晚上12点过后会对限制的ip进行解除限制;[0043]7.以上的功能通过脚本形式实现,脚本会每3分钟运行一次,以达到非法用户不能每天频繁刷网站流量的效果。[0044]-.分析apache日志,取出最后3分钟时间内的访问日志。[0045]*如何取3分钟内的日志数据:[0046]1.运行脚本前,记录当前日志总行数[0047]LOGLINENUMOLD='/usr/bin/wc_l$BLOGLOGIawk'{print$l}''[0048]2.等待3分钟:sle印180[0049]3.取当前日志总行数[0050]LOGLINENUM2='/usr/bin/wc_l$BLOGLOGIawk,{print$l}''[0051]4.两次取得的行数相减为这3分钟内的用户访问日志数据[0052]letLOGLINENUM=$LOGLINENUM2-$LOGLINENUMOLD[0053]二.把这个时间段的ip进行排序,统计出每个ip访问次数大于设定值的ip[0054]/usr/bin/tail-n$LOGLINENUM$BLOGLOGI/bin/cut-d""-f11/bin/sortI/usr/bin/uniq-c|/bin/sort-r-g-kl|head_n5|/bin/awk,{if($l>,$ACCESSNUM,)print$0}'[0055]三.判断系统当前负载情况决定是否做限制[0056]#收集负载和本服务器的web页面访问情况[0057]【主权项】1.一种基于脚本的流量防刷方法,其特征在于;包括如下步骤:步骤1、每t分钟,从网络日志中取出该时间段内的访问日志,t为正整数;步骤2、根据所述访问日志取出其中所有访问ip;步骤3、统计出每个访问ip的访问次数;步骤4、把访问次数大于限定量值的ip进行限制。2.根据权利要求1所述的一种基于脚本的流量防刷方法,其特征在于:还包括步骤5、对限制的ip限定h小时后解除限制,h为正整数。3.根据权利要求1所述的一种基于脚本的流量防刷方法,其特征在于:步骤4进一步具体为:若系统当前负载小于限定值时对访问ip不做限制,否则把访问次数大于限定量值的ip进行限制。4.一种基于脚本的流量防刷系统,其特征在于;包括如下模块:获取日志模块,每t分钟,从网络日志中取出该时间段内的访问日志,t为正整数;获取ip模块,根据所述访问日志取出其中所有访问ip;获取访问次数模块,统计出每个访问ip的访问次数;限制模块,把访问次数大于限定量值的ip进行限制。5.根据权利要求4所述的一种基于脚本的流量防刷系统,其特征在于;还包括解除限制模块,对限制的ip限定h小时后解除限制,h为正整数。6.根据权利要求4所述的一种基于脚本的流量防刷方法,其特征在于;限制模块进一步具体为:若系统当前负载小于限定值时对访问ip不做限制,否则把访问次数大于限定量值的ip进行限制。【专利摘要】本发明提供一种基于脚本的流量防刷方法,每t分钟,从网络日志中取出该时间段内的访问日志,t为正整数;根据所述访问日志取出其中所有访问ip;统计出每个访问ip的访问次数;把访问次数大于限定量值的ip进行限制,本发明还提供一种基于脚本的流量防刷系统,使得防刷流量更加彻底。【IPC分类】H04L29-06,H04L12-24【公开号】CN104618352【申请号】CN201510021039【发明人】沈文策【申请人】沈文策【公开日】2015年5月13日【申请日】2015年1月16日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1