host2318 发表于 2012-6-30 23:26:48

msxo 发的 自动禁用Hotspot用户期限操作1.03在5.X下不能执行的修复

本帖最后由 host2318 于 2012-6-30 23:35 编辑

http://bbs.routerclub.com/forum.php?mod=viewthread&tid=51885&page=1#pid408707
这个帖子中说的不能执行问题,确实碰到了。没有修改脚本任何内容,只是把hotspot的段落划分了一下,已经可用
脚本原帖地址:http://bbs.routerclub.com/forum.php?mod=viewthread&tid=45628&highlight=1.03# 脚本名称: ExpAuto

# 版本日期: 2011年1月3日*********2012.6.30修复5.x下hotspot脚本不能执行的问题。By1482392@qq.com
#因原帖出售铜板,这里仅贴出hotspot段,把这段内容覆盖原作者脚本hotspot段即可执行

#Hotspot处理开始
/ip hotspot user
:foreach i in= do={
        :set Ccomment ;:set lc [:find $Ccomment "["];:set rc [:find $Ccomment "]"]
       
        :if ([:typeof $lc]="num" && [:typeof $rc]="num" && $lc<$rc) do={
                :set Exp [:pick $Ccomment ($lc+1) $rc];:set js 0;:set CToday 0
               
                        :if ([:pick $Exp 0 1]!="+" && [:len $Exp]>7 && [:typeof [:tonum [:pick $Exp 0 8]]]="num") do={
                        :set usname ;:set uspfl ;:set CYear ([:pick $Exp 0 4]-1);:set CToday ($CYear*365+$CYear /4)
                        :set CMonth [:pick $Exp 4 6];:if ([:pick $Exp 4 5] = 0) do={ :set CMonth [:pick $Exp 5 6]};:set CMonth ($CMonth-1)
                        :set CDay [:pick $Exp 6 8];:if ([:pick $Exp 6 7] = 0) do={ :set CDay [:pick $Exp 7 8]};:set CDay ($CDay-1)
                        :if (($CYear-$CYear/4*4) != 3) do={:set CToday ($CToday+[:pick $leapyear $CMonth]+$CDay)} else={:set CToday ($CToday+[:pick $leapyear ($CMonth+12)]+$CDay)}}
                       
                                :set pcl [:find $Exp "+"];:if ([:typeof $pcl]="num" && ($pcl>7 || $pcl=0) && ([:len $Exp]-1)>$pcl) do={
                                :if ($pcl = 0) do={:set CToday $Today;:set CYear ($Year+1);:set CMonth ($Month+1);:set CDay ($Day+1)
                                :if ([:len $CMonth]<2) do={:set CMonth ("0" . $CMonth)};:if ([:len $CDay]<2) do={:set CDay ("0" . $CDay)}
                                set $i comment=([:pick $Ccomment 0 $lc] . "[" .($CYear . $CMonth . $CDay) . [:pick $Exp $pcl [:len $Exp]] . "]" . [:pick $Ccomment ($rc+1) [:len $Ccomment]])}
                                :while ([:typeof [:find $Exp "+"]]="num") do={
                                        :set Exp [:pick $Exp ($pcl+1) [:len $Exp]];:set pcl [:find $Exp "+"];:if ([:typeof $pcl]!="num") do={:set pcl [:len $Exp]}
                                        :set js ($js+[:tonum [:pick $Exp 0 $pcl]])};:set CToday ($CToday+$js)}

                :if ($CToday < $Today) do={:if (!) do={disable $i;/ip hotspot active remove }} else={:if () do={enable $i}}
}}
#Hotspot处理结束

host2318 发表于 2012-6-30 23:33:47

上效果图。

58156640 发表于 2012-6-30 23:36:02

utek 发表于 2014-11-20 16:13:37

hotspot用户到期提前提醒怎样实现呢,可以教下吗
页: [1]
查看完整版本: msxo 发的 自动禁用Hotspot用户期限操作1.03在5.X下不能执行的修复