ubnt解决方案
查看: 7798|回复: 3

[RouterOS] ROS 5.2 限速脚本求助!PPPOE 或者 hotspot 按在线用户数量限速!

[复制链接]

73

回帖

469

积分

72 小时

在线时间

少尉

注册时间
2011-6-27
金币
377 个
威望
1 个
荣誉
0 个

尚未签到

发表于 2011-7-27 11:41 |显示全部楼层
本帖最后由 aieee 于 2011-7-29 14:50 编辑 & [6 ~! z  L" M2 ]1 o% S2 c
/ e: V: D8 h; ?3 H5 Y
以下脚本是ros2.9.6的pppoe脚本!希望ros高手帮我改成ros5.2 可以使用的!+ ~/ P, q4 [2 Z
另外我想用hotspot来做!功能和pppoe一样!
7 s, D% w- C7 V3 Z: ~7 C当只有一个用户的时候 整个宽带用完!两个用户时平分!; G- f/ C, c2 ]0 \7 @- v
====================================================% }  J5 g( `5 P
#客户数量
: ]% x8 ?* E: Z& j1 Y1 u0 F& s9 b( r:local count1 0
3 W7 Y  I, P( c4 S2 B7 ~#上传速率,这里是2条ADSL1 {! C- N9 K" o* D7 g; Z: e
:local UpRate (1*500000)
9 y% N# h1 ]. k9 k#下载速率
- s1 W6 B/ W! N8 Z7 r  f:local DownRate (1*6000000)
$ I" n( R9 C+ n* g) M* }#平均上传速率
! q" U8 m( Q+ Q. r( n& _" f:local UpAverage 25000/ J: x2 \  w5 t$ [0 ~
#平均下载速率
3 P5 H1 x( b3 d8 V. D" e:local DownAverage 1500000/ a, O2 Q* a9 E4 X$ n
#得到客户数量+ S2 j4 Z3 G9 r: @  ^3 j
:set count1 [:len [/ppp act find]]* D8 F6 O1 p7 [1 `, q1 Y1 a3 W% l
#得到平均上传速率
7 p5 D/ r" s' ]$ V! c4 r! z:set UpAverage ($UpRate/$count1); b7 p! L: K) c. m! @1 G
#得到平均下载速率
" m" D4 o1 U7 M/ X+ a) G( t/ N+ ]:set DownAverage ($DownRate/$count1)! c" y0 ^8 z$ i5 x
#得到限速值
6 T5 H5 p2 O* |' O% B! M:local LimitAt (($UpAverage*50/100/1000*1000) . "/" . ($DownAverage*50/100/1000*1000)). n3 O- ~/ g' ~, M' }4 o
#最低上传下载速率
3 P, n- y7 J$ s' V$ o5 m, N! b4 g:if ($UpAverage < 25000) do={:set UpAverage 25000}
/ H1 j1 X! r) {/ ^: F:if ($DownAverage < 1500000) do={:set DownAverage 1500000}
* `' w9 x; z  |# b5 x#得到最大限速
) C: m/ f3 X, F# Y% f! o- [* W7 C:local MaxLimit ($UpAverage . "/" . $DownAverage)
8 I2 E! m( m! D7 t# b# b#突发极限/ i: {( F8 _) i5 @3 {3 n- J0 V
:local BurstLimit (($UpAverage*150/100/1000*1000) . "/" . ($DownAverage*150/100/1000*1000))
/ ^* L' d3 k& F$ x1 f5 C  h! g#突发的平均值
' t: H' m; }2 k0 S9 p:local BurstThr (($UpAverage*60/100/1000*1000) . "/" . ($DownAverage*60/100/1000*1000))
+ h; @+ C' H$ M( v; _2 [* u0 G#突发时间
( {, `3 `6 h6 l2 C3 n8 k1 [4 B" X:local BurstTime "3s/10s"* Y9 c' i/ E! n4 J7 ^9 v
/que sim
  T% ^- J/ H% s; Rset [find dynamic=true] queue=default/default limit-at=$LimitAt max-limit=$MaxLimit burst-limit=$BurstLimit burst-threshold=$BurstThr burst-time=$BurstTime' Z2 C* o& |' m. c
==================================================================, z& {  w  Z9 T" s3 @2 N0 `
我自己改好了!不知道为什么,定义变量用全局就可以了!还是就是计数哪里有点不同!
4 j+ B6 h* S* K, Q: ]4 f) {; B#客户数量
6 s# v* P. b: i& s8 t, n) }4 R:global  count 0
! P0 S, B+ R/ W8 w2 X, [#上传速率,这里是2条ADSL
8 e; J) D2 b* V0 d" a# ]9 E2 V9 C5 Y:global  UpRate (1*500000)
# n2 ^8 i0 F8 }4 R* G$ u, c8 n#下载速率. A; c8 I0 `5 D$ |3 n' `& B
:global  DownRate (1*4000000)
# I% u6 }- s, w0 D3 H' {#平均上传速率1 B% Y% _4 Z0 a6 J4 `
:global  UpAverage 20000
( V/ M0 P' `0 J+ w1 m+ {) Q+ S#平均下载速率! p" }* J8 S0 ?
:global  DownAverage 40000003 a. ?  Y, a8 [0 b& Q8 \
#得到客户数量( T$ X2 H0 Z6 C
#:set count [:len [/ppp act find]]
% U" p0 |0 R4 e4 r" A:set count [:len [/ip hotspot active find]]
& \) T/ M/ b. B" e5 q#得到平均上传速率
4 g5 y; s% \2 ?8 P, ?; X:set UpAverage ($UpRate/$count)
+ k: x2 g8 i( F$ H' H& j#得到平均下载速率
; K4 \  n. K- e4 ^: b" ]" `5 k:set DownAverage ($DownRate/$count)% J4 ]/ k% L9 @2 U0 h9 L$ m: B. \
#得到限速值
) u' A+ \2 ]* L* a:global  LimitAt (($UpAverage * 50 / 100 / 1000 * 1000) . "/" . ($DownAverage * 50 / 100 / 1000 * 1000))
: d. U& X3 _& ^2 Y$ }  H, S#最低上传下载速率$ s( i8 {: U" }* T+ F( o  h) J# E
:if ($UpAverage < 50000) do={:set UpAverage 50000}
" L4 v2 \* N- s2 m8 Q7 [:if ($DownAverage < 1500000) do={:set DownAverage 1500000}( t* c. v, c& ^" Z& c( m
#得到最大限速! N0 z& [+ ~1 o
:global  MaxLimit ($UpAverage . "/" . $DownAverage)2 S9 S' f0 Y* x) ~! m
#突发极限" t" Z( e/ Z/ l: D. R+ p
:global  BurstLimit (($UpAverage * 150 / 100 / 1000 * 1000) . "/" . ($DownAverage * 150 / 100 / 1000 * 1000))
6 ~+ h; |0 x, w6 Y% X0 N#突发的平均值
% c( d- I! p: m" j8 N! K8 N- V+ b:global  BurstThr (($UpAverage * 60 / 100 / 1000 * 1000) . "/" . ($DownAverage * 60 / 100 / 1000 * 1000))+ }, q/ h7 r3 ]2 \
#突发时间
$ u* c/ ~) l5 f:global  BurstTime "1s/1s"
; a" y$ q- P# u( j2 B/que sim0 V0 x' P3 A# o8 u- P
set [find dynamic=yes] queue=default/default  interface=all limit-at=$LimitAt max-limit=$MaxLimit burst-limit=$BurstLimit burst-threshold=$BurstThr burst-time=$BurstTime

73

回帖

469

积分

72 小时

在线时间

少尉

注册时间
2011-6-27
金币
377 个
威望
1 个
荣誉
0 个

尚未签到

发表于 2011-7-28 10:56 |显示全部楼层
晕~没人理我!
回复

使用道具 举报

183

回帖

331

积分

181 小时

在线时间

少尉

注册时间
2009-4-19
金币
98 个
威望
0 个
荣誉
0 个
累计签到:2 天
连续签到:0 天
[LV.20]漫游旅程
发表于 2013-3-4 02:36 |显示全部楼层
:for sheng from=1 to=253 do={queue simple add name=("PC" . $sheng) dst-address=0.0.0.0/0  max-limit=1000000/1000000 interface=LAN parent=none priority=8 queue=default/default burst-limit=2000000/2000000 burst-threshold=1000000/1000000 burst-time=3s/3s total-queue=default target-address=("10.0.0.". $sheng) disabled=no}
. t2 Q5 L6 V. k注意更改你的IP和带宽
Mikrotik Metal-2SHPn
回复

使用道具 举报

183

回帖

331

积分

181 小时

在线时间

少尉

注册时间
2009-4-19
金币
98 个
威望
0 个
荣誉
0 个
累计签到:2 天
连续签到:0 天
[LV.20]漫游旅程
发表于 2013-3-4 02:37 |显示全部楼层
ROS5.x版本使用
回复

使用道具 举报

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

本版积分规则

Archiver | 手机版 | 无线门户 ( 粤ICP备11076993号|粤公网安备44010602008359号 ) |网站地图

GMT+8, 2025-11-7 15:10

返回顶部 返回列表