Страница 1 из 1

Рандомный мак адрес

Добавлено: 15 авг 2023, 08:35
work15082023
Добрый день форумчане, в скриптах как свин в апельсинах, подскажите как реализовать /interface ethernet set ether1 mac-address=XX:XX:XX:XX:XX:XX с рандомным мак адресом? Спасибо.

Re: Рандомный мак адрес

Добавлено: 15 авг 2023, 10:34
work15082023
Как всегда выручил метод научного тыка!

Код: Выделить всё

: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
}
Всем спасибо.

Re: Рандомный мак адрес

Добавлено: 04 сен 2023, 10:45
Sertik
Какого там "научного" тыка - просто содрали скрипт Rextended с официального форума.