переделать скрипт

Автоматизация при помощи встроенного скриптового языка и RouterOS API
evgeniy7676
Сообщения: 58
Зарегистрирован: 19 май 2016, 14:52

переделать скрипт

Сообщение evgeniy7676 »

Как переделать скрипт ,чтобы он в адрес листе access_mac постоянно не переписывал айпи адреса,а менял их только если в арп они сменились ?

:foreach i in [/ip arp find where interface="LAN"] do={
:local mac [/ip arp get number=$i mac-address];
:local ip [/ip arp get number=$i address];

:local idaddrlist [/ip firewall address-list find where list="access_mac" and comment=$mac];
:if ($idaddrlist != "") do={ /ip firewall address-list set numbers=$idaddrlist address=$ip; }

}

Еще подсказали
Воткнуть флаги

Например
:global OldStatus
:if (($Status = False) and ($Status!=$OltStatus)) do={bla bla}
:set OldStatus $Status

В скпиптах несилен,как поправить ?
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: переделать скрипт

Сообщение Chupaka »

всё просто: не просто искать по маку, но и добавить условие, чтобы IP-адрес перед изменением был другой :)

т.е.

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

where list="access_mac" and comment=$mac
дополнить до

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

where list="access_mac" and comment=$mac and address!=$ip
evgeniy7676
Сообщения: 58
Зарегистрирован: 19 май 2016, 14:52

Re: переделать скрипт

Сообщение evgeniy7676 »

спасибо