Итак, я выяснил и проверил, что в 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 продолжает висеть до истечения срока, либо при следующем включении компа обнуляется (куски лога выше). Т.е. при выключении компа скрипт не выполняется.

Давайте зайдем с другой стороны. Не станем запускать скрипт в DHCP, предположим, что будем обходится обычными скриптами.