Скрипт для MikroTik: уменьшения скорости пользователей после превышения лимита

В ситуации когда группе пользователей, которая работает через MikroTik (Микротик) (используется в качестве устройства доступа в Интернет). Нам нужно ограничить скорость до 1Мбит/с симметрично тех, кто скачал более 3Гбайт или любого другого числа байт.

Сам скрипт очень прост и его можно сразу же протестировать или изменить:

после загрузки Микротика:

 
:local uploadspeed;
:local downloadspeed;
:local totaltraffic;
:local realtraffic;
:local limittraffic;
:set limittraffic 3000;
:for y from=2 to=254 do={
    :local n; 
    :set n "user$y"; 
    :put $n; 
    :set realtraffic [/queue simple get "$n" byte]; 
    :set uploadspeed [:pick $realtraffic 0 ([:find $realtraffic "/"]-1)]; 
    :set downloadspeed [:pick $realtraffic ([:find $realtraffic "/"]+1) [:len $realtraffic]]; 
    :set totaltraffic (($uploadspeed + $downloadspeed) / 1048576); 
    :put $totaltraffic; 
 
    :if ($totaltraffic >= $limittraffic ) do={ /queue simple set [find name="$n"] max-limit="1M/1M"}}

Если результаты Вас устроили, то переходим в консоле

 /system scripts

или через утилиту winbox вводим скрипт Tools -> New Script:

Name – имя нового скрипта (в нашем случае limit_user_after_3g).
Source – пишем вышеприведенный листинг скрипта. Жмем Ок.

Теперь по имени можно найти созданный скрипт. Для запуска нужно нажать Run Script.

Спасибо, что поделились с друзьями:

0
 




Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">