#以下脚本在计划任务中运行,12小时运行一次就行了
:local tz
:local prof
:local tj
:set tz 5
:set prof 4day
:set tj 3
#tz为提前发送到期通知的天数
#prof为提前发送到期通知的模板
#tj为到期后几天停用用户账号,0为到期即停机
:local nyr [/system clock get date]
:local yy ([:find jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec [:pick $nyr 0 3]]+1)
#查到当前月份
:if ($yy<10) do={:set yy (0 . $yy)}
:set nyr ([:pick $nyr 7 11] . $yy . [:pick $nyr 4 6])
:local ii "0"
:local pcom8 ""
/ppp secret
:foreach puse in [find disabled=no] do={
:local pcom [get $puse comment]
:local pnam [get $puse name]
:local tzprof [get $puse profile]
:set ii ($ii + 1)
:if ($pcom!="" && $pcom!="admin") do={
:if ([:len $pcom]<8) do={
:log error ("账号【" . $pnam . "】日期备注不足8位,现备注日期:【" . $pcom . "】");:beep frequency=2080;
} else={
:set pcom8 [:tonum [:pick $pcom 0 8]]
:if ($pcom8>1) do={
:if ($pcom8>=$nyr && ($pcom8 - $nyr)<=$tz && $tzprof!=$prof) do={
/ppp secret set [/ppp secret find name=$pnam] profile=$prof;:set ii ($ii - 1)
:log error ("用户【" . $pnam . "】即将到期,通知已下发!")
}}
:if ($nyr>=$pcom8 && ($nyr - $pcom8)>=$tj) do={
/ppp active remove [/ppp active find name=$pnam];
#/ppp secret set [/ppp secret find name=$pnam] profile=tongzhi;:set ii ($ii - 1)
/ppp secret disable [/ppp secret find name=$pnam];:set ii ($ii - 1)
:log error ("用户【" . $pnam . "】已过期停用并强制下线!")
}}} else={:log error ("用户【" . $pnam . "】的备注【" . $pcom . "】格式有误,请重新备注!")}
}
#:log warning ("有效用户数【" . $ii . "】")
*********************************************************************************
#以下脚本在system/scripts中运行一次就行了
#首页所在服务器IP
:local StrToAddress
:set StrToAddress 192.168.3.254
#首页所在服务器端口
:local StrToPort
:set StrToPort 8080
#时限1,指定时限内跳到指定首页,设置1-5秒
:local StrTimeOut1
:set StrTimeOut1 5s
#时限2,指定时限内不跳到指定首页,3小时为3h,(测试是否有效可调为1分钟1m)
:local StrTimeOut2
:set StrTimeOut2 1h
ip firewall mangle add chain=prerouting src-address=20.20.20.0/24 protocol=tcp dst-port=80 src-address-list=!src2 \
action=add-src-to-address-list address-list=src1 address-list-timeout=$StrTimeOut1 comment=TimeOut1
ip firewall mangle add chain=prerouting src-address=20.20.20.0/24 protocol=tcp dst-port=80 \
action=add-src-to-address-list address-list=src2 address-list-timeout=$StrTimeOut2 comment=TimeOut2
ip firewall nat add chain=dstnat src-address=20.20.20.0/24 protocol=tcp dst-port=80 src-address-list=src1 \
action=dst-nat to-addresses=$StrToAddress to-ports=$StrToPort comment=ToAddress
****************************************************************************************
#建立地址池
/ip pool
add name=4day ranges=20.20.20.0/24
add name=tongzhi ranges=30.30.30.0/24
****************************************************************************************
#建立PRO
/ppp profile
add change-tcp-mss=default comment="" dns-server=192.168.3.254,202.96.134.133 \
local-address=4day name=4day only-one=yes rate-limit=72k/700k \
remote-address=4day use-compression=default use-encryption=default \
use-vj-compression=default
add change-tcp-mss=default comment="" dns-server=192.168.3.254,202.96.134.133 \
local-address=tongzhi name=tongzhi only-one=default remote-address=\
tongzhi use-compression=default use-encryption=default \
use-vj-compression=default
说明:请将192.168.3.254改为你的ros内网网卡的IP
并将20.20.20.0/24网段做一个nat转发,允许这个网段上网