Рандомный мак адрес
Добавлено: 15 авг 2023, 08:35
Добрый день форумчане, в скриптах как свин в апельсинах, подскажите как реализовать /interface ethernet set ether1 mac-address=XX:XX:XX:XX:XX:XX с рандомным мак адресом? Спасибо.
Форум поддержи и обмена опытом пользователей оборудования RouterBOARD и операционной системы RouterOS Латвийского производителя MikroTik
https://forummikrotik.ru/
Код: Выделить всё
:global randomnum do={
/system resource irq
:local tmpsum 0
:foreach i in=[find] do={:set tmpsum ($tmpsum + [get $i count])}
:set tmpsum [:tostr $tmpsum]
:local lentmp [:len $tmpsum]
:return [:tonum [:pick $tmpsum ($lentmp - 2) $lentmp]]
}
{
:local arrhex [:toarray "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F"]
:local rndmac ; :local tmp
:for x from=1 to=12 step=1 do={
:set tmp ([$randomnum] % 16)
# this makes it always a valid MAC
:if ($x = 2) do={:set tmp (($tmp | 0x2) & 0xE)}
:set rndmac "$rndmac$($arrhex->$tmp)"
:if ([:tostr [:len $rndmac]] ~ "(2|5|8|11|14)") do={:set rndmac "$rndmac:"}
}
:put $rndmac
/interface ethernet set ether1 mac-address=$rndmac
}