Слежения за регистрацией устройства в Wi-Fi сети c уведомлением на почту

Обсуждение ПО и его настройки
mcheev
Сообщения: 12
Зарегистрирован: 13 окт 2017, 10:47

Рано радовался.
Не засекает отсутствие во втором варианте
:if ([:len $MACdetect]=<0) do={/tool e-mail send to=xxxxx@xxxxx.xx subject="Объект покинул периметр" body="Объект покинул периметр";
Но решение нашел :if ([:len $MACdetect]=0)

А в варианте
:local MAC B0:48:1A:A3:A6:0D;
:local time [/system clock get time];
:local hour [: pick [/system clock get time] 0 2];

:if ($hour >= 8 and $hour <= 21) do={ :local MACdetect [/interface wireless registration-table find mac-address=$MAC];

:if ([:len $MACdetect]<=0) do={
:do { :local childSPY [/ip firewall address-list get value-name=list [find address=1.1.1.1]]; } on-error {}
:do { /ip firewall address-list remove [find where address=1.1.1.1];
/tool e-mail send to=xxxxx@xxxxx.xx subject="Объект покинул периметр" body="Объект покинул периметр"; }}


:if ([:len $MACdetect]>0) do={
:do { :local childSPY [/ip firewall address-list get value-name=list [find address=1.1.1.1]]; } on-error { /ip firewall address-list add address=1.1.1.1 list=child-spy;
/tool e-mail send to=xxxxx@xxxxx.xx subject="Объект в периметре" body="Объект в периметре"; }}}

Шлет постоянно уведомления о покидании объекта периметра, без остановки.


crafty
Сообщения: 2
Зарегистрирован: 09 фев 2018, 11:27

Всем добрый день, дабы не плодить тем отпишусь здесь,
появилась мысль сделать оповещение при подключении и отключении начальнеке к wifi (wifi на микротике в капсмане).
Пробовал сделать это через netwatch, работает но не с iphone,
Так как в скриптописании вообще не силен то полез в гугл, нашел вроде бы решение но не пойму как его докрутить что бы оно заработало нормально
Пример скрипта:

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

:global Mac; 
:set $Mac XX:XX:XX:XX:XX:XX; 
:global WiFi; 
:set $WiFi 0
if ([/caps-man registration-table find mac-address=$Mac] != "" and $WiFi = 0) do={[/tool fetch url="https://api.telegram.org/botTTOKKEN/sendmessage\?chat_id=CHATID&text=GET" keep-result=no] and [:set $WiFi 24]}; 
if ([/caps-man registration-table find mac-address=$Mac] = "" and $WiFi != 0) do={[/log warning $WiFi] and [:set $WiFi ($WiFi-1)]}; :if ($WiFi=1) do={[/tool fetch url="https://api.telegram.org/botTTOKKEN/sendmessage\?chat_id=CHATID&text=OUT" keep-result=no]};
при таком виде скрипт при появлении устройства закидывает сообщениями, но при отключении устройства он ничего не пишет, пробовал скрипты отсюда, с iphone они так же не отрабатывают.
пример скрипта брал здесь https://itgost.ru/mikrotik-otsledit-pod ... ii-k-wifi/


vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

Нутак напишите скрипт сами, делов то


Есть интересная задача и бюджет? http://mikrotik.site
crafty
Сообщения: 2
Зарегистрирован: 09 фев 2018, 11:27

Был бы я в этом силен, не искал бы совета)))) в данный момент пытаюсь разобраться как докрутить этот скрипт так что бы при появлении устройства он один раз отправлял сообщение.
Тут спросил вдруг кто уже сталкивался с таким и нашел решение.


enzain
Сообщения: 291
Зарегистрирован: 26 дек 2017, 22:30

crafty писал(а): 09 фев 2018, 11:58 Был бы я в этом силен, не искал бы совета)))) в данный момент пытаюсь разобраться как докрутить этот скрипт так что бы при появлении устройства он один раз отправлял сообщение.
Тут спросил вдруг кто уже сталкивался с таким и нашел решение.
Глобальную переменную добавте - при обнаружении устройства дополнительно проверяйте значение переменной, если 1 - ничего не отправлять, если не 1, то отправить сообщение и присвоить переменной значение 1.

Все ж просто


Brond
Сообщения: 19
Зарегистрирован: 09 фев 2018, 12:03

crafty писал(а): 09 фев 2018, 11:41 Всем добрый день, дабы не плодить тем отпишусь здесь,
появилась мысль сделать оповещение при подключении и отключении начальнеке к wifi (wifi на микротике в капсмане).
Пробовал сделать это через netwatch, работает но не с iphone,
Так как в скриптописании вообще не силен то полез в гугл, нашел вроде бы решение но не пойму как его докрутить что бы оно заработало нормально
Пример скрипта:

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

:global Mac; 
:set $Mac XX:XX:XX:XX:XX:XX; 
:global WiFi; 
:set $WiFi 0
if ([/caps-man registration-table find mac-address=$Mac] != "" and $WiFi = 0) do={[/tool fetch url="https://api.telegram.org/botTTOKKEN/sendmessage\?chat_id=CHATID&text=GET" keep-result=no] and [:set $WiFi 24]}; 
if ([/caps-man registration-table find mac-address=$Mac] = "" and $WiFi != 0) do={[/log warning $WiFi] and [:set $WiFi ($WiFi-1)]}; :if ($WiFi=1) do={[/tool fetch url="https://api.telegram.org/botTTOKKEN/sendmessage\?chat_id=CHATID&text=OUT" keep-result=no]};
при таком виде скрипт при появлении устройства закидывает сообщениями, но при отключении устройства он ничего не пишет, пробовал скрипты отсюда, с iphone они так же не отрабатывают.
пример скрипта брал здесь https://itgost.ru/mikrotik-otsledit-pod ... ii-k-wifi/
Добрый день,
Подскажите как решили проблему?


imaoskol
Сообщения: 132
Зарегистрирован: 11 янв 2019, 14:48

Я бы уведомления с почты поменял на уведомления в telegram


Аватара пользователя
imax57
Сообщения: 2
Зарегистрирован: 18 янв 2014, 13:24

Такой сделал скрипт проверки подключения wi-fi клиента и сообщений об этом в telegram. Используется глобальная переменная для устранения проблемы лишних сообщений.

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

:global statusMAX;
:if ($statusMAX=(:)) do={set statusMAX 1};
:local MAC 00:00:00:00:00:00;
:local MACdetect [/caps-man registration-table find mac-address=$MAC];

:if ([:len $MACdetect]<=0) do={:if ($statusMAX="1") do={
:set statusMAX 0;
##:log info max phone disconnected;
/tool fetch http-method=get url="https://api.telegram.org/bot[BOT_ID]/sendMessage?chat_id=[CHAT_ID]&text=max%20iphone%20disconnected" keep-result=no;
}};
:if ([:len $MACdetect]>0) do={:if ($statusMAX="0") do={
:set statusMAX 1;
##:log info max phone connected;
/tool fetch http-method=get url="https://api.telegram.org/bot[BOT_ID]/sendMessage?chat_id=[CHAT_ID]&text=max%20iphone%20connected" keep-result=no;
}};


Ответить