okpan 发表于 2010-4-25 11:07:50

PPPOE到期自动禁用,并踢下线。

本帖最后由 zooyo 于 2011-2-9 19:35 编辑

PPPOE到期自动禁用,论坛里早有相应的脚本,如果用户一直在线不关机,到期禁用帐号后,是不会断线的。现增加踢下线功能,已在ROS3.22中测试通过,其它版本未测试。
在本论坛学了不少,在此表示感谢,感谢younger ,感谢47771885,借鉴了你们的2个贴子。
首先在PPPOE账号加个备注,也就是comment
备注的内容是日期
注意:日期格式非常严格。月/日/年;
月份是英文月份的头三个字母,全部小写
日为两位数字,不够的加补足
如:2006年3月8日写成“mar/08/2006”
添加一个定时运行的脚本,每天运行一次
一月 january
二月 february
三月 march
四月 april
五月 may
六月 june
七月 july
八月 august
九月 september
十月 october
十一月november
十二月december

为方便大家,现将代码附下,/ppp secret
:foreach pppuse in ] do={
:local ppnam ;
disable $ppnam
/ppp active remove
}

补充内容 (2011-11-4 10:17):
有更好的脚本,

补充内容 (2011-11-4 10:23):
这个包里就有,
http://bbs.routerclub.com/forum.php?mod=viewthread&tid=48420&extra=page%3D1%26filter%3Dtypeid%26typeid%3D19%26typeid%3D19

cisco_baby 发表于 2010-4-25 11:22:38

终于坐到沙发了。。

414590400 发表于 2010-4-25 11:37:50

板凳板凳板凳板凳板凳板凳板凳板凳板凳板凳板凳板凳板凳

mxso 发表于 2010-4-25 12:34:23

PPPOE到期自动禁用,论坛里早有相应的脚本,如果用户一直在线不关机,到期禁用帐号后,是不会断线的。现增加 ...
okpan 发表于 2010-4-25 11:07 http://bbs.routerclub.com/images/common/back.gif


    {:2_35:} 你的学习能力也太……,这功能早就实现了~

qwert1388 发表于 2010-4-25 13:30:30

这功能早就实现了

47771885 发表于 2010-4-25 13:49:05

本帖最后由 47771885 于 2010-4-25 14:32 编辑

来了还是要看看的
。。。。这是老办法了 有漏洞
有的月份 天数不一样 有28 29 30 31 天的 这就是为什么要转换成数字 老操作
第一中国人不习惯用 鸟语
第 2 能避免其上面的 漏洞 并且。。更加灵活 的扩展性
无模版
# 14:07 2010-04-25 RouterOS 3.X(3.30) 4.X(4.4) 5.x(5.0)
# QQ47771885 Guangzhou ver 2.2
{
:local nyr
: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";
/ppp secret;
:foreach puse in do={
:local pcom ;
:local pnam ;
:if ([:len $pcom] >= 8) do={
:local pcom8 [:tonum [:pick $pcom 0 8]];
:if ($pcom8>1) do={
:if ($nyr>=$pcom8) do={
/ppp secret disable ;:set ii ($ii-1);
/ppp active remove ;
:log error ("\BD\FB\D3\C3\D3\C3\BB\A7 [" . $pnam . "]");
}} else={:log error ("\B4\ED\CE\F3\B5\C4\B1\B8\D7\A2\B8\F1\CA\BD [" . $pnam . "] [" . $pcom . "]");}
} else={:log error ("\C8\D5\C6\DA\B1\B8\D7\A2\B2\BB\D7\E38\CE\BB [" . $pnam . "] [" . $pcom . "]")}}
:log warning ("\D3\D0\D0\A7\D3\C3\BB\A7\CA\FD [" . $ii . "]");
}以上例子借鉴 mxso兄 月份获取法 简便
*修正 忘记增加踢用户下线 和剔除多余变量
日期备注升级到8位 如20100431 【前8位】

解:

# 14:07 2010-04-25 RouterOS 3.X(3.30) 4.X(4.4) 5.x(5.0)
# QQ47771885 Guangzhou ver 2.2
{
:local nyr
: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]) 数字化 ROS 系统当前时间 8位
:local ii "0"; 账号统计初始化
/ppp secret;
:foreach puse in do={ 排除 被禁用 空备注 指定备注
:local pcom ; 获得账号备注
:local pnam ; 获得账号名
:if ([:len $pcom] >= 8) do={ 判断账号备注位数是否大于或等8位
:local pcom8 [:tonum [:pick $pcom 0 8]]; 重新定义用户备注变量 截取前 8位 并检测是否为纯数字
:if ($pcom8>1) do={如果备注为纯数字
:if ($nyr>=$pcom8) do={ 如果用户备注等于或大于当前日期进行操作
/ppp secret disable ;:set ii ($ii-1); 禁用账号 并统计减1
/ppp active remove ; 剔除用户在线的话
:log error ("\BD\FB\D3\C3\D3\C3\BB\A7 [" . $pnam . "]"); 写日志
}} else={:log error ("\B4\ED\CE\F3\B5\C4\B1\B8\D7\A2\B8\F1\CA\BD [" . $pnam . "] [" . $pcom . "]");}
} else={:log error ("\C8\D5\C6\DA\B1\B8\D7\A2\B2\BB\D7\E38\CE\BB [" . $pnam . "] [" . $pcom . "]")}}
:log warning ("\D3\D0\D0\A7\D3\C3\BB\A7\CA\FD [" . $ii . "]"); 显示统计
}

wsb2008 发表于 2010-4-25 14:21:55

okpan 发表于 2010-4-25 15:02:34

一直在用,虽说有点不方便,月份要取英文单词的前3三字母,还得必需是小写。日期还有大月小月闰月之分,但只要注意到这些,还是挺管用的,虽然younger的那篇贴子能禁用帐号,但不能踢其下线,毕竟长时不关机的情况很少,也没有在意,因能够解决实际问题,一直用到现在。前两天看到47771885 的一个贴子,说是大于多少流量就踢下线,于是琢磨了一下,二合一。交流使人进步,今天我又进步了。谢谢大家

cailiao 发表于 2010-4-25 15:18:54

本帖最后由 cailiao 于 2010-4-25 15:22 编辑

如能增加。。网费到期提前几天用户拨号上线打开网页弹出提示就完美了,人家海蜘蛛早就实现了上述功能,ROS的也有,就是没人公开

47771885 发表于 2010-4-25 15:20:35

一直在用,虽说有点不方便,月份要取英文单词的前3三字母,还得必需是小写。日期还有大月小月闰月之分,但 ...
okpan 发表于 2010-4-25 15:02 http://bbs.routerclub.com/images/common/back.gif


    你一定看错了我没有发过这样的

47771885 发表于 2010-4-25 15:21:13

如能增加。。网费到期提前几天用户拨号上线打开网页弹出提示就完美了
cailiao 发表于 2010-4-25 15:18 http://bbs.routerclub.com/images/common/back.gif
可以做到提前操作 具体怎么能通知 不是很完美

mxso 发表于 2010-4-25 15:31:46

如能增加。。网费到期提前几天用户拨号上线打开网页弹出提示就完美了,人家海蜘蛛早就实现了上述功能,ROS的 ...
cailiao 发表于 2010-4-25 15:18 http://bbs.routerclub.com/images/common/back.gif


    对比部分已经不存在问题,其剩下的就是广告通知,其实也简单,只是有些版本的页面修改较为困难了

okpan 发表于 2010-4-25 15:39:58

本帖最后由 okpan 于 2010-4-25 15:47 编辑

来了还是要看看的
。。。。这是老办法了 有漏洞
有的月份 天数不一样 有28 29 30 31 天的 这就是为什么要 ...
47771885 发表于 2010-4-25 13:49 http://bbs.routerclub.com/images/common/back.gif


    兄弟的帖子含金量高,更符合中国人的习惯,比我高多了,决定升级改用老兄的。

cailiao 发表于 2010-4-25 15:40:00

本帖最后由 cailiao 于 2010-4-25 15:42 编辑

对比部分已经不存在问题,其剩下的就是广告通知,其实也简单,只是有些版本的页面修改较为困难了
mxso 发表于 2010-4-25 15:31 http://bbs.routerclub.com/images/common/back.gif


      MXSO大大期待你出个完整PPPOE提示网费到期通知版。很多人想要的功能ROS没海蜘蛛却早有了,ros怎么要比海蜘蛛强才行

okpan 发表于 2010-4-25 15:43:08

你一定看错了我没有发过这样的
47771885 发表于 2010-4-25 15:20 http://bbs.routerclub.com/images/common/back.gif


    这个是yonger的贴子里,确实不是老兄的。
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: PPPOE到期自动禁用,并踢下线。