Обычный офис, есть штат сисадминов, есть начальство, которое ходит на работу, как мы все знаем, не по графику. Было бы довольно неплохо сисадмину знать, когда начальство в офисе, а когда нет.
Задача стояла следующая: когда начальник приходит в офис - оповещать сисадмина об этом знаменательном событии =). Так как сейчас все повсеместно пользуются смарфонами, то при появлении на работе начальника - его смартфон автоматически регистрируется в Wi-Fi сети предприятия (конечно, если у него он всегда включен). Это был как раз наш случай. Значит по этому событию мы можем сделать оповещение!Для этого создаем скрипт:
# вводим локальную переменную с MAC-адресом смартфона начальника
:local MAC CC:CC:CC:CC:CC:CC;# вычисляем время, и отбираем значение "час"
:local time [/system clock get time];# если время с 9 до 18 (время работы админов), ищем в регистрационном листе Wi-Fi наш MAC.
:local hour [: pick [/system clock get time] 0 2];
:if ($hour >= 9 and $hour <= 18) do={:local MACdetect [interface wireless registration-table find mac-address=$MAC];# если переменная MACdetect записалась, и она больше нуля (MAC-адрес найден), то пытаемся записать в переменную nameADR имя адрес-листа с IP 123.123.123.123, если записать не можем-значит адрес-листа не существует, значит регистрация произошла впервые за день, значит создаем адрес-лист с именем timer и IP 123.123.123.123 на 8 часов. Это таймер, я его описывал в статье тут. Мы его используем для того, что-бы отловить ТОЛЬКО первую регистрацию устройства за день. Потом будет таймаут на 8 часов до следующего дня.
:if ([:len $MACdetect]>0) do {:do {:local nameADR [/ip firewall address-list get value-name=list [find address=123.123.123.123]]} on-error={/ip firewall address-list add dynamic=yes address=123.123.123.123 list=timer timeout=08:00:00;# играем на beeper микротик "Имперский Марш" с Звездных войн. оповещая что начальство в офисе(или под офисом, т.к. дальность Wi-Fi добивает до стоянки)
:beep frequency=500 length=500ms;Вместо оповещение через beeper можно сделать любое другое: по e-mail, по sms и т.д.
:delay 500ms;
:beep frequency=500 length=500ms;
:delay 500ms;
:beep frequency=500 length=500ms;
:delay 500ms;
:beep frequency=400 length=500ms;
:delay 400ms;
:beep frequency=600 length=200ms;
:delay 100ms;
:beep frequency=500 length=500ms;
:delay 500ms;
:beep frequency=400 length=500ms;
:delay 400ms;
:beep frequency=600 length=200ms;
:delay 100ms;
:beep frequency=500 length=500ms;
:delay 1000ms;
:beep frequency=750 length=500ms;
:delay 500ms;
:beep frequency=750 length=500ms;
:delay 500ms;
:beep frequency=750 length=500ms;
:delay 500ms;
:beep frequency=810 length=500ms;
:delay 400ms;
:beep frequency=600 length=200ms;
:delay 100ms;
:beep frequency=470 length=500ms;
:delay 500ms;
:beep frequency=400 length=500ms;
:delay 400ms;
:beep frequency=600 length=200ms;
:delay 100ms;
:beep frequency=500 length=500ms;
:delay 1000ms;}}}
Полностью скрипт выглядит так:
:local MAC CC:CC:CC:CC:CC:CC;Скрипт помещаем в Scheduler на отработку каждые 30 секунд. Данный метод можно применять для отслеживания подключения ноутбука или компьютера по wifi. Для отслеживания включения компьютера по проводу в ROS есть уже встроенный функционал.
:local time [/system clock get time];
:local hour [: pick [/system clock get time] 0 2];
:if ($hour >= 9 and $hour <= 18) do={:local MACdetect [interface wireless registration-table find mac-address=$MAC];
:if ([:len $MACdetect]>0) do {:do {:local nameADR [/ip firewall address-list get value-name=list [find address=123.123.123.123]]} on-error={/ip firewall address-list add dynamic=yes address=123.123.123.123 list=timer timeout=08:00:00; :beep frequency=500 length=500ms;
:delay 500ms;
:beep frequency=500 length=500ms;
:delay 500ms;
:beep frequency=500 length=500ms;
:delay 500ms;
:beep frequency=400 length=500ms;
:delay 400ms;
:beep frequency=600 length=200ms;
:delay 100ms;
:beep frequency=500 length=500ms;
:delay 500ms;
:beep frequency=400 length=500ms;
:delay 400ms;
:beep frequency=600 length=200ms;
:delay 100ms;
:beep frequency=500 length=500ms;
:delay 1000ms;
:beep frequency=750 length=500ms;
:delay 500ms;
:beep frequency=750 length=500ms;
:delay 500ms;
:beep frequency=750 length=500ms;
:delay 500ms;
:beep frequency=810 length=500ms;
:delay 400ms;
:beep frequency=600 length=200ms;
:delay 100ms;
:beep frequency=470 length=500ms;
:delay 500ms;
:beep frequency=400 length=500ms;
:delay 400ms;
:beep frequency=600 length=200ms;
:delay 100ms;
:beep frequency=500 length=500ms;
:delay 1000ms;}}}
Приведите пожалуйста пример скрипта с отправкой email. Никак не получается сделать.
ОтветитьУдалитьполучилось модифицировать? пишите через обратную связь - помогу.
УдалитьИдея прикольная, вот только как бы изменить так что бы он за несколькими MAC-адресами следил.
ОтветитьУдалитьСпасибо за идею.
ОтветитьУдалитьСделал у себя аналог. Но отправляю сообщение в Telegram.
Можно поделиться скриптом?
УдалитьМожно поделиться скриптом? Vv.pylypiuk@gmail.com
Удалитьподелитесь и сюда, пожалуйста
Удалитьgwk@inbox.ru
отправьте мне тоже пожалуйста скрипт olekseenkoav@gmail.com
УдалитьХороший вариант. Если можно, поделитесь скриптом пожалуйста на kaktus.gut@gmail.com
Удалитьи мне, если можно на sergyingibitor@ya.ru
УдалитьДобрый день, если не затруднит, то и мне киньте) borisovich.work@gmail.com
УдалитьПоделитесь пожалуйста скриптом. gomergrifin@gmail.com
Удалитьподелитесь данным скриптом пожалуйста: andrey2best@gmail.com
Удалитьбипер далеко не услышать, а вот как сделать сообщение в скайп?
ОтветитьУдалитьЭтот комментарий был удален автором.
ОтветитьУдалитьдобрый день. что то у меня ничего не получилось. внёс изменения с MAC адресом и IP но ничего не происходит. как можно по почте связаться? так же было бы интересно получать сообщение на телеграмм...
ОтветитьУдалить:if ([:len $MACdetect]>0) do={:do
ОтветитьУдалить/ip firewall address-list add address=123.123.123.123 list=timer timeout=08:00:00;
ОтветитьУдалить"Для отслеживания включения компьютера по проводу в ROS есть уже встроенный функционал."
ОтветитьУдалитьДобрый день, можно поподробнее об этом пожалуйста?
Год прошел а всем срать на коменты.
ОтветитьУдалить