I grew tired of seeing multiple users sharing their login details with friends who connect to a different hotspot and be permitted access. We were loosing money and word was spreading rapidly that this cheat worked…So I devised this 3 part method.
A script is run on usermanager that scans the user list for more than 1 active session. If it finds a naughty user it outputs the users details to a file (badusers.txt).
A VB app is run on a windows box at the NOC that connects to the usermanager and collects the file using FTP (every minute at the 10th second). It then FTP’s the file to all the hotspots.
A script is run on the hotspot that opens the file, picks the usernames out, matches them to the active users and if found, administrativly removes them.
Script run on usermanager (runs every minute, on the minute)
/tool user-manager user
:local sessions
:foreach i in=[/tool user-manager user find subscriber=nowires] do={
:set sessions [get $i active-sessions]
:if ($sessions > 1) do={print from $i brief append file badusers} else={}
}
Also this script removes the previous file (runs every minute, at the 58th second)
/file remove badusers.txt
This is the script that is run on each hotspot. (runs every minute)
Critisism, optimisation, comments ect. are welcome…I have almost no scripting experience, This was learnt out of necessity for a solution to this problem.
At the moment i’m trying to work out a method to remove the cookie too. But it looks like there may be a bug in “:foreach i in=[/ip hotspot cookie find user = $baduser] do={/ip hotspot cookie remove $i”. It finds the badusers cookie, but $i doesn’t match the cookie when it tries to remove it.
Why don’t you consider billing your clients per GB instead of per time? When you charge per GB it’s actually a good thing if users share their details, as you’ll end up selling more GB’s
You could sell 10MB at a time if wish.
I have many scripts to make usage based systems work very efficient. Pop me a msg if your interested! G