mirror of
https://github.com/eworm-de/routeros-scripts
synced 2024-05-14 08:04:19 +00:00
15d8652c29
With RouterOS 6.x a print always starts with numeric id zero, then counts up. This is no longer true with RouterOS 7.x... Thus we have to handle two or more digits in input.
43 lines
1.4 KiB
Text
43 lines
1.4 KiB
Text
#!rsc by RouterOS
|
|
# RouterOS script: accesslist-duplicates%TEMPL%
|
|
# Copyright (c) 2018-2021 Christian Hesse <mail@eworm.de>
|
|
# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
|
|
#
|
|
# print duplicate antries in wireless access list
|
|
# https://git.eworm.de/cgit/routeros-scripts/about/doc/accesslist-duplicates.md
|
|
#
|
|
# !! This is just a template! Replace '%PATH%' with 'caps-man'
|
|
# !! or 'interface wireless'!
|
|
|
|
:local 0 "accesslist-duplicates%TEMPL%";
|
|
:global GlobalFunctionsReady;
|
|
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
|
|
|
|
:local Read do={ :return; }
|
|
|
|
:local Seen [ :toarray "" ];
|
|
:local Shown [ :toarray "" ];
|
|
|
|
:foreach AccList in=[ / %PATH% access-list find where mac-address!="00:00:00:00:00:00" ] do={
|
|
:local Mac [ / %PATH% access-list get $AccList mac-address ];
|
|
:foreach SeenMac in=$Seen do={
|
|
:if ($SeenMac = $Mac) do={
|
|
:local Skip 0;
|
|
:foreach ShownMac in=$Shown do={
|
|
:if ($ShownMac = $Mac) do={ :set Skip 1; }
|
|
}
|
|
:if ($Skip = 0) do={
|
|
/ %PATH% access-list print where mac-address=$Mac;
|
|
:set Shown ($Shown, $Mac);
|
|
|
|
:put "\nNumeric id to remove, any key to skip!";
|
|
:local Remove [ :tonum [ $Read ] ];
|
|
:if ([ :typeof $Remove ] = "num") do={
|
|
:put ("Removing numeric id " . $Remove . "...\n");
|
|
/ %PATH% access-list remove $Remove;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
:set Seen ($Seen, $Mac);
|
|
}
|