Caps-Man auto access-list
Written by: BrasDeutscher,PA,Brazil
Works on RouterOS v6.37rc27
{
set min signal range here - options= -80..80 -70..70 -60..60 , only copy and paste
:global rg “-80..80”
!!-- DO NOT CHANGE ANY MORE BELOW --!!
:global sv0 “dhcp0”
:global sv1 “dhcp1”
:global del “100ms”
:global dl1
:global dl2
:global dl3
:global dl4
:global mac0
:global mac1
:global stat
:global statx
:global txt0 “$sv0”
:global txt1 “$sv1”
:global cap1
:global cap2
:global cap3
:global cap4
:global cap5
:global all
:foreach d in=[/ip dhcp-server lease find where server=“$sv0” ! dynamic ! disabled ] do={
:set stat [/ip dhcp-server lease get $d status ];
:set statx [:len $stat ];
:if (“$statx” = “5” ) do={
:set mac0 [/ip dhcp-server lease get $d mac-address ];
:if ([/caps-man access-list find where mac-address=“$mac0” comment=“$txt0” ] = “” ) do={
:set all [/caps-man access-list add mac-address=“$mac0” interface=“all” signal-range=“$rg” ssid-regexp=“”
action=accept comment=“$txt0” ];
:log warning (“ACL->Server:$sv0 Comment:$txt0 Mac:$mac0 for all Caps”);
}}}
:foreach e in=[/ip dhcp-server lease find where server=“$sv1” ! dynamic ! disabled ] do={
:set stat [/ip dhcp-server lease get $e status ];
:set statx [:len $stat ];
:if (“$statx” = “5” ) do={
:set mac1 [/ip dhcp-server lease get $e mac-address ];
:if ([/caps-man access-list find where mac-address=“$mac1” comment=“$txt1” ] = “” ) do={
:set cap1 [/caps-man access-list add mac-address=“$mac1” interface=cap1 signal-range=“$rg” ssid-regexp=“”
action=accept comment=“$txt1” ];
:set dl1 [:delay $del
:set cap2 [/caps-man access-list add mac-address=“$mac1” interface=cap2 signal-range=“$rg” ssid-regexp=“”
action=accept comment=“$txt1” ]];
:set dl2 [:delay $del
:set cap3 [/caps-man access-list add mac-address=“$mac1” interface=cap3 signal-range=“$rg” ssid-regexp=“”
action=accept comment=“$txt1” ]];
:set dl3 [:delay $del
:set cap4 [/caps-man access-list add mac-address=“$mac1” interface=cap4 signal-range=“$rg” ssid-regexp=“”
action=accept comment=“$txt1” ]];
:set dl4 [:delay $del
:set cap5 [/caps-man access-list add mac-address=“$mac1” interface=cap5 signal-range=“$rg” ssid-regexp=“”
action=accept comment=“$txt1” ]];
:log warning (“ACL->Server:$sv1 Comment:$txt1 Mac:$mac1 for Cap 1,2,3,4,5”);
}}}}
\
Caps-Man auto access-list Schedule Version with 2m Interval
Written by: BrasDeutscher,PA,Brazil
Works on RouterOS v6.37rc27
/system scheduler
add comment=“## Caps-Man auto access-list ##” interval=2m name=
“## Caps-Man auto access-list ##” on-event=“{\r\r
\n# set min signal range here - options= -80..80 -70..70 -60..60 , only
copy and paste # \r\r
\n:global rg "-80..80"\r\r
\n\r\r
\n## !!-- DO NOT CHANGE ANY MORE BELOW --!! ##\r\r
\n:global sv0 dhcp0\r\r
\n:global sv1 dhcp1\r\r
\n:global del 100ms\r\r
\n:global dl1\r\r
\n:global dl2\r\r
\n:global dl3\r\r
\n:global dl4\r\r
\n:global mac0\r\r
\n:global mac1\r\r
\n:global stat\r\r
\n:global statx\r\r
\n:global txt0 "$sv0"\r\r
\n:global txt1 "$sv1"\r\r
\n:global cap1\r\r
\n:global cap2\r\r
\n:global cap3\r\r
\n:global cap4\r\r
\n:global cap5\r\r
\n:global all\r\r
\n:foreach d in=[/ip dhcp-server lease find where server="$sv0" dynamic
=no disabled=no ] do={\r\r
\n:set stat [/ip dhcp-server lease get $d status ];\r\r
\n:set statx [:len $stat ];\r\r
\n:if ("$statx" = 5 ) do={\r\r
\n:set mac0 [/ip dhcp-server lease get $d mac-address ];\r\r
\n:if ([/caps-man access-list find where mac-address=$mac0 comment="$tx
t0" ] = "" ) do={\r\r
\n:set all [/caps-man access-list add mac-address=$mac0 interface=all sig
nal-range="$rg" ssid-regexp="" \\r\r
\n action=accept comment="$txt0" ]; \r\r
\n:log warning ("ACL->Server:$sv0 Comment:$txt0 Mac:$mac0 for all Caps
");\r\r
\n}}}\r\r
\n:foreach e in=[/ip dhcp-server lease find where server="$sv1" dynamic
=no disabled=no ] do={\r\r
\n:set stat [/ip dhcp-server lease get $e status ];\r\r
\n:set statx [:len $stat ];\r\r
\n:if ("$statx" = 5 ) do={\r\r
\n:set mac1 [/ip dhcp-server lease get $e mac-address ];\r\r
\n:if ([/caps-man access-list find where mac-address=$mac1 comment="$tx
t1" ] = "" ) do={\r\r
\n:set cap1 [/caps-man access-list add mac-address=$mac1 interface=cap1 s
ignal-range="$rg" ssid-regexp="" \\r\r
\n action=accept comment="$txt1" ];\r\r
\n:set dl1 [:delay $del \r\r
\n:set cap2 [/caps-man access-list add mac-address=$mac1 interface=cap2 s
ignal-range="$rg" ssid-regexp="" \\r\r
\n action=accept comment="$txt1" ]];\r\r
\n:set dl2 [:delay $del \r\r
\n:set cap3 [/caps-man access-list add mac-address=$mac1 interface=cap3 s
ignal-range="$rg" ssid-regexp="" \\r\r
\n action=accept comment="$txt1" ]]; \r\r
\n:set dl3 [:delay $del \r\r
\n:set cap4 [/caps-man access-list add mac-address=$mac1 interface=cap4 s
ignal-range="$rg" ssid-regexp="" \\r\r
\n action=accept comment="$txt1" ]]; \r\r
\n:set dl4 [:delay $del \r\r
\n:set cap5 [/caps-man access-list add mac-address=$mac1 interface=cap5 s
ignal-range="$rg" ssid-regexp="" \\r\r
\n action=accept comment="$txt1" ]]; \r\r
\n:log warning ("ACL->Server:$sv1 Comment:$txt1 Mac:$mac1 for Cap 1,2,
3,4,5");\r\r
\n}}}}” policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive
start-time=startup

