arainbow 发表于 2016-10-17 12:09:08

无线客户端自动登记流量系统

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

使用上是这样的情况,我们单位用的是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管理和查看上网记录。

脚本如下:
:local user
:local lastusername
:local item
:local logs
:local useritem
:local usercount 0
:local date
:local time
:set date
:set date [:tostr $date]
:set time
:set time [:tostr $time]

/tool user-manager
:set logs
#:log info $logs
:foreach item in=$logs do={
#:log info $item
:set user
#:log info $user
:set useritem
#:log info $useritem
:if ([:tostr $useritem]="") do={
user add username=$user customer=admin comment="$date$time added."
:set usercount ($usercount+1)
}
:set lastusername $user
}
:if (usercount>0) do={
:log info "$usercount wireless user(s) added"
}
log remove $logs
运行非常好!!
希望对大家有用!




arainbow 发表于 2018-12-14 09:22:40

用到了自己查了下帖子里的脚本,再自己回个顶个,论坛就是这样的冷清。
页: [1]
查看完整版本: 无线客户端自动登记流量系统