找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 58458|回复: 207

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

  [复制链接]
发表于 2010-4-25 11:07:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
本帖最后由 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

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

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

为方便大家,现将代码附下,
  1. /ppp secret
  2. :foreach pppuse in [find comment=[/system clock get date]] do={
  3. :local ppnam [get $pppuse name];
  4. disable $ppnam
  5. /ppp active remove [find name=$ppnam]
  6. }
复制代码

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

补充内容 (2011-11-4 10:23):
这个包里就有,
http://bbs.routerclub.com/forum. ... %3D19%26typeid%3D19
routeros
发表于 2010-4-25 11:22:38 | 显示全部楼层
终于坐到沙发了。。
routeros
回复

使用道具 举报

发表于 2010-4-25 11:37:50 | 显示全部楼层
板凳板凳板凳板凳板凳板凳板凳板凳板凳板凳板凳板凳板凳
routeros
回复

使用道具 举报

发表于 2010-4-25 12:34:23 | 显示全部楼层



    你的学习能力也太……,这功能早就实现了~
routeros
回复

使用道具 举报

发表于 2010-4-25 13:30:30 | 显示全部楼层
这功能早就实现了
routeros
回复

使用道具 举报

发表于 2010-4-25 13:49:05 | 显示全部楼层
本帖最后由 47771885 于 2010-4-25 14:32 编辑

来了还是要看看的
。。。。这是老办法了 有漏洞
有的月份 天数不一样 有28 29 30 31 天的 这就是为什么要转换成数字 老操作
第一中国人不习惯用 鸟语
第 2 能避免其上面的 漏洞 并且。。更加灵活 的扩展性
无模版

  1. # 14:07 2010-04-25 RouterOS 3.X(3.30) 4.X(4.4) 5.x(5.0)
  2. # QQ47771885 Guangzhou ver 2.2
  3. {
  4. :local nyr [/system clock get date]
  5. :local yy ([:find jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec [:pick $nyr 0 3]]+1)
  6. :if ($yy<10) do={:set yy (0 . $yy)}
  7. :set nyr ([:pick $nyr 7 11] . $yy . [:pick $nyr 4 6])
  8. :local ii "0";
  9. /ppp secret;
  10. :foreach puse in [find disabled=no comment!="" comment!="admin"] do={
  11. :local pcom [get $puse comment];
  12. :local pnam [get $puse name];
  13. :if ([:len $pcom] >= 8) do={
  14. :local pcom8 [:tonum [:pick $pcom 0 8]];
  15. :if ($pcom8>1) do={
  16. :if ($nyr>=$pcom8) do={
  17. /ppp secret disable [/ppp secret find name=$pnam];:set ii ($ii-1);
  18. /ppp active remove [/ppp active find name=$pnam];
  19. :log error ("\BD\FB\D3\C3\D3\C3\BB\A7 [" . $pnam . "]");
  20. }} else={:log error ("\B4\ED\CE\F3\B5\C4\B1\B8\D7\A2\B8\F1\CA\BD [" . $pnam . "] [" . $pcom . "]");}
  21. } else={:log error ("\C8\D5\C6\DA\B1\B8\D7\A2\B2\BB\D7\E38\CE\BB [" . $pnam . "] [" . $pcom . "]")}}
  22. :log warning ("\D3\D0\D0\A7\D3\C3\BB\A7\CA\FD [" . $ii . "]");
  23. }
复制代码
以上例子借鉴 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 [/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]) 数字化 ROS 系统当前时间 8位
:local ii "0"; 账号统计初始化
/ppp secret;
:foreach puse in [find disabled=no comment!="" comment!="admin"] do={ 排除 被禁用 空备注 指定备注
:local pcom [get $puse comment]; 获得账号备注
:local pnam [get $puse name]; 获得账号名
: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 [/ppp secret find name=$pnam];:set ii ($ii-1); 禁用账号 并统计减1
/ppp active remove [/ppp active find name=$pnam]; 剔除用户在线的话
: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 . "]"); 显示统计
}

到期操作.rar

1.16 KB, 下载次数: 191

routeros
回复

使用道具 举报

发表于 2010-4-25 14:21:55 | 显示全部楼层
routeros
回复

使用道具 举报

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

使用道具 举报

发表于 2010-4-25 15:18:54 | 显示全部楼层
本帖最后由 cailiao 于 2010-4-25 15:22 编辑

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

使用道具 举报

发表于 2010-4-25 15:20:35 | 显示全部楼层
一直在用,虽说有点不方便,月份要取英文单词的前3三字母,还得必需是小写。日期还有大月小月闰月之分,但 ...
okpan 发表于 2010-4-25 15:02



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

使用道具 举报

发表于 2010-4-25 15:21:13 | 显示全部楼层
如能增加。。网费到期提前几天用户拨号上线打开网页弹出提示就完美了
cailiao 发表于 2010-4-25 15:18

可以做到提前操作 具体怎么能通知 不是很完美
routeros
回复

使用道具 举报

发表于 2010-4-25 15:31:46 | 显示全部楼层
如能增加。。网费到期提前几天用户拨号上线打开网页弹出提示就完美了,人家海蜘蛛早就实现了上述功能,ROS的 ...
cailiao 发表于 2010-4-25 15:18



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

使用道具 举报

 楼主| 发表于 2010-4-25 15:39:58 | 显示全部楼层
本帖最后由 okpan 于 2010-4-25 15:47 编辑
来了还是要看看的
。。。。这是老办法了 有漏洞
有的月份 天数不一样 有28 29 30 31 天的 这就是为什么要 ...
47771885 发表于 2010-4-25 13:49



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

使用道具 举报

发表于 2010-4-25 15:40:00 | 显示全部楼层
本帖最后由 cailiao 于 2010-4-25 15:42 编辑
对比部分已经不存在问题,其剩下的就是广告通知,其实也简单,只是有些版本的页面修改较为困难了
mxso 发表于 2010-4-25 15:31



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

使用道具 举报

 楼主| 发表于 2010-4-25 15:43:08 | 显示全部楼层
你一定看错了我没有发过这样的
47771885 发表于 2010-4-25 15:20



    这个是yonger的贴子里,确实不是老兄的。
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-5-16 03:16 , Processed in 0.104637 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表