MikroTik User Manager Automatic Rate Limits

Usermanager is MikroTik’s version of radius and is a great way to centralize AAA on your network. In addition, it also has facility to allow users to buy credits on your network through hotspot, however, the only limitation it can automatically create is a time limitation. You can create packages that allow access for a day, week, month, etc., but in order to set a rate limit for that customer and their package, you have to manually make that change to the user in Usermanager.

I needed a way to automatically accomplish this so I enlisted the help of my script guru, Andrew Cox. Although I have never met Andrew in person, I can tell you he is a bright guy who is one of the few people I know that truly speaks MikroTik’s scripting language. As usual, Andrew rose to the challenge and wrote a few lines of code that function perfectly.

A few notes, first the script uses the user property “credit-price” to determine which package the customer purchased, therefore, you need to have unique prices for each rate limit. For example, if the Gold package is 128k/64k and costs $25, then users that buy the 64k/64k package that costs $25 will get the same rate limit. In this example, just change the price slightly on one of the packages and it will work correctly. For example, make the 128k/64k package $19.95 or something similar.

So, here is the code, past it into a new script item through Winbox, set the scheduler to run it once every minute or so and you will enjoy the benefits of automatic rate limits with self created user accounts.

— Script—
#Script to add rate limit’s to newly created user-manager accounts.
#Written by Andrew Cox | https://www.mikrotik-routeros.com

:local counter
:local check

#Loop through all users in user-manager
:foreach counter in=[/tool user-manager user find] do={

#Check to see if comment contains “RLA” (short for ‘rate limit added’). If it doesn’t, this account hasn’t had a rate limit set yet.
#We only check the first 3 characters, this means you can continue to use the comment field for whatever you like so long as you leave the ‘RLA’ untouched (if present)
:set check [:pick [/tool user-manager user get $counter value=comment] 0 3]
:if ($check=”RLA”) do={

#Has RLA, rate limit is already set so ignore

} else={

#Doesn’t have RLA Set rate-limit based on initial purchase pricing
:if ([/tool user-manager user get $counter credit-price] =”1000″) do={/tool user-manager user set $counter rate-limit=”256k/128k” comment=”RLA”}
:if ([/tool user-manager user get $counter credit-price] =”2500″) do={/tool user-manager user set $counter rate-limit=”256k/128k” comment=”RLA”}
:if ([/tool user-manager user get $counter credit-price] =”4500″) do={/tool user-manager user set $counter rate-limit=”96k/48k” comment=”RLA”}
:if ([/tool user-manager user get $counter credit-price] =”6000″) do={/tool user-manager user set $counter rate-limit=”128k/64k” comment=”RLA”}
:if ([/tool user-manager user get $counter credit-price] =”7500″) do={/tool user-manager user set $counter rate-limit=”256k/128k” comment=”RLA”}

}

}
— End of Script—

Steve Discher

Steve Discher was born in Apple Valley, California and today makes his home in College Station, Texas with his wife and three children. He is a 1987 graduate of Texas A-M University and owns ISP Supplies, a wireless distribution company, and conducts MikroTik training classes. His hobbies include flying his Piper Cub and RV camping with his family.

Recent Posts

  • Ubiquiti Unifi Video NVR Upgrade Fails

    Yesterday I got tired of the nagging “Update Available” on my Ubiquiti Video NVR so I went through the upgrade process in the web GUI. It failed with Error 400. I tried several times, several browsers, same error. I then …

  • Using MikroTik LHG as a UE With a Baicells eNodeB

    This has been a dream for a long time, and a DIY project for those industrious individuals willing to cobble it together, but now it is a reality in a production device. First of all why would you want to …

  • New ISP Supplies App

    Now available on the Playstore and the iPhone Appstore, the ISP Supplies App! With great features like a powerful search engine and a reorder list, it makes it fast and easy to place orders on the go. Favorite products for quick …

See More News