自由的生活_软路由论坛

 找回密码
 注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 1036|回复: 0

[脚本] 无线客户端自动登记流量系统

[复制链接]
发表于 2016-10-17 12:09:08 | 显示全部楼层 |阅读模式

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

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

x
我实现的这个功能大概有些怪异,一直想写没时间,昨天写下还挺简单的。

使用上是这样的情况,我们单位用的是ROS无线路由器RB951UI-2HND,设了无线密就这么一直用着。
但是没有无线上网的记录,不知道上过多少台设备、流量各是多少。DHCP SERVER中的记录也有超时期限,信息也不够全面。
虽然ROS的USER MANAGER有此功能可以认证和计费,但也没有一一登记设备然后建立用户这种管理的必要。

因此我用无线安全策略里的radius的ACCOUNTING功能结合USER MANAGER,再加上脚本,实现了无线上网用户的自动登记、流量记录功能,还真的管用呢。
原理:如果用户尚未在USER MANAGER中注册过,由于无线安全策略里打开RADIUS的计费,将会有计费消息到USER MANAGER, USER MANAGER会记录计费失败的日志。定时的脚本读取计费失败日志,把此无线设备添加到USER中,并删除计费失败记录。
如果用户已经完成了注册,计费功能会正常进行。
设置要点:1、启用USER MANAGER包、建立管理用户(如admin);2、RADIUS中添加USER MANAGER(可以是本机)的IP和密钥;3、无线安全策略中启用RADIUS的计费;4、安装脚本并定时支行;5、登录 http://routerip/userman管理和查看上网记录。

脚本如下:
  1. :local user
  2. :local lastusername
  3. :local item
  4. :local logs
  5. :local useritem
  6. :local usercount 0
  7. :local date
  8. :local time
  9. :set date [/system clock get date]
  10. :set date [:tostr $date]
  11. :set time [/system clock get time]
  12. :set time [:tostr $time]

  13. /tool user-manager
  14. :set logs [log find]
  15. #:log info $logs
  16. :foreach item in=$logs do={
  17. #:log info $item
  18. :set user [log get $item user-orig]
  19. #:log info $user
  20. :set useritem [user find username="$user"]
  21. #:log info $useritem
  22. :if ([:tostr $useritem]="") do={
  23. user add username=$user customer=admin comment="$date  $time added."
  24. :set usercount ($usercount+1)
  25. }
  26. :set lastusername $user
  27. }
  28. :if (usercount>0) do={
  29. :log info "$usercount wireless user(s) added"
  30. }
  31. log remove $logs
复制代码
运行非常好!!
希望对大家有用!




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

本版积分规则

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

GMT+8, 2017-12-12 18:28 , Processed in 0.303728 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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