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

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Ответить
work15082023
Сообщения: 2
Зарегистрирован: 15 авг 2023, 08:24

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


work15082023
Сообщения: 2
Зарегистрирован: 15 авг 2023, 08:24

Как всегда выручил метод научного тыка!

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

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


Sertik
Сообщения: 1601
Зарегистрирован: 15 сен 2017, 09:03

Какого там "научного" тыка - просто содрали скрипт Rextended с официального форума.


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Ответить