Итак, я выяснил и проверил, что в lease-script можно указать имя скрипта, который будет выполнятся при выдаче клиенту IP-адреса и при истечении этой аренды (assigned и deassigned).
Также проверил, что в lease-script можно писать тело скрипта и он также будет выполняться по assigned и deassigned.
Полученная информация позволяет избежать использования двух скриптов, пример которых есть тут viewtopic.php?p=31422#p31422 , сократив их количество до одного.
Я пока применяю такой скрипт:
Код: Выделить всё
{
#IP компа, за появлением в сети которого наблюдаем
:local CompIP 192.168.0.109;
#Делаем Ping этого IP, чтобы высветить его в ARP принудительно и не ждать автообновления ARP
/ping address="$CompIP" interface=bridge1 count=3
delay 3s
#Ищем нужный IP в таблице ARP
:local y [/ip arp find address="$CompIP"];
# Сравниваем наш IP с "ничем", если IP НЕ равен "ничему", т.е. имеет реальное значение, то в лог пишем что-то (можно выполнять любое другое действие)
:if ( $y!="") do={
:log warning "Supercomp ONline!";
}
# Сравниваем наш IP с "ничем", если IP РАВЕН "ничему", т.е. не имеет реального значения, то в лог пишем что-то (можно выполнять любое другое действие)
:if ( $y="") do={
:log warning "Supercomp OFFline!";
}
}
Есть проблема, а именно - скрипт выполняется только когда происходит assigned или deassigned клиента на DHCP-сервере. Т.е. когда комп включается, видим в логе микротика сперва это:
Код: Выделить всё
20:59:14 dhcp,info dhcp1 deassigned 192.168.0.000 from 00:00:00:00:00:00
И тут же это:
Код: Выделить всё
20:59:14 dhcp,info dhcp1 assigned 192.168.0.000 to 00:00:00:00:00:00
Из-за этого скрипт выполняется дважды. Но это ерунда, основная проблема в том, что при выключении кома не происходит deassigned, аренда IP продолжает висеть до истечения срока, либо при следующем включении компа обнуляется (куски лога выше). Т.е. при выключении компа скрипт не выполняется.