Добрый день. Прошу помочь с написанием скрипта. Задача следующая: Необходимо чтобы была проверка на конкретный mac адрес в поле wireles/registration. Там в поле uptime, если параметр например будет в промежутке от 1 до 5 минут, осуществлялась проверка, и только в пределах указанного параметра было осуществлено действие (отправка в телеграм). Последнюю часть кода с отправкой я примерно понимаю как написать, но первую часть с проверкой как то не могу выстроить в голове. И куда заносить скрипт? В systems/scripts?
p.s. НА самом деле возможно имеется более простое решения для задачи: если телефон подключился к ви-фи то отправляем уведомление. И при этом не спамим каждые 5 -10 минут о том что он подключен. Уведомления присылать только при подключении.
Скрипт проверки подключения конкретного mac + телега
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
-
- Модератор
- Сообщения: 3605
- Зарегистрирован: 26 сен 2013, 14:20
- Откуда: НСК
- Контактная информация:
Если помочь то не вопрос. Давайте пишите и задавайте вопросы.
Есть интересная задача и бюджет? http://mikrotik.site
-
- Сообщения: 2
- Зарегистрирован: 14 фев 2018, 10:42
:global tsup [/system clock get time];put $tsup
:global dsup [/system clock get date];put $dsup
:local PingCount 3
:local PingTarget1 192.168.1.10
:local PingResult1 [/ping $PingTarget1 count=$PingCount]
:local ping ($PingResult1 >= $PingCount)
if ($ping=true) do={
/tool fetch url="https://api.telegram.org/botххххххх:ххх ... &text=USER here AT: $tsup-$dsup" keep-result=no
}
Так вот ясень пень этот скрипт будет зациклен до тех пор пока юзер не дисконектится и будет повторяться. Хочу внести проверку от состояния uptime. Подскажите как это сделать?
:global dsup [/system clock get date];put $dsup
:local PingCount 3
:local PingTarget1 192.168.1.10
:local PingResult1 [/ping $PingTarget1 count=$PingCount]
:local ping ($PingResult1 >= $PingCount)
if ($ping=true) do={
/tool fetch url="https://api.telegram.org/botххххххх:ххх ... &text=USER here AT: $tsup-$dsup" keep-result=no
}
Так вот ясень пень этот скрипт будет зациклен до тех пор пока юзер не дисконектится и будет повторяться. Хочу внести проверку от состояния uptime. Подскажите как это сделать?
-
- Модератор
- Сообщения: 3605
- Зарегистрирован: 26 сен 2013, 14:20
- Откуда: НСК
- Контактная информация:
Ну так не отправляйте если ничего не поменялось то
Есть интересная задача и бюджет? http://mikrotik.site
-
- Сообщения: 6
- Зарегистрирован: 01 сен 2017, 11:57
не помню где нашел, но скрипт элегантный и работает
Код: Выделить всё
:global mac "XX:XX:XX:XX:XX:XX"
:global OldChek
:global chek
if ([/interface wireless registration-table find mac-address=$mac] != "") do={set chek true} else={set chek false}
if (($chek != $OldChek) and ($chek = true)) do={
/tool fetch url="https://api.telegram.org/bot11111111:xxxxxxxx/sendmessage?chat_id=-123456789&text=User came home."
}
if (($chek != $OldChek) and ($chek = false)) do={
/tool fetch url="https://api.telegram.org/bot11111111:xxxxxxxx/sendmessage?chat_id=-123456789&text=User left home."
}
set OldChek $chek
Если хотите сообщения на русском языке, можно воспользоваться любым url энкодером (например urlencoder.org)
Еще можно навтыкать свяких смайликов из таблицы emoji
34-23 в моем примере название роутера
Получится что-то вроде
Код: Выделить всё
/tool fetch url="https://api.telegram.org/bot123456789:xxxxxxxx/sendmessage\?chat_id=-123456789&text=%F0%9F%92%A5*** 34-23 ***%F0%9F%92%A5 %0D%0A%D
0%AE%D1%80%D0%B0%20%D0%BF%D1%80%D0%B8%D1%88%D0%B5%D0%BB%20%D0%B4%D0%BE%D0%BC%D0%BE%D0%B9. %0D%0A%F0%9F%91%89%F0%9F%8F%A0"
Скрипт помещаете в шедулер и запускаете раз в 5 минут
Если нужно еще кого-то зачекать, не забывайте переименовывать переменные mac, chek и OldChek
-
- Сообщения: 2
- Зарегистрирован: 25 май 2018, 14:46
При выпоолнении /tool fetch url="https://api.telegram.org/botxxxxxxxx/se ... xx&text=xx" получаю
status: failed
failure: ssl connection error: internal error (6)
при этом через браузер отправка сообщения работает. В чем может быть проблема?
status: failed
failure: ssl connection error: internal error (6)
при этом через браузер отправка сообщения работает. В чем может быть проблема?
- Kato
- Сообщения: 271
- Зарегистрирован: 17 май 2016, 04:23
- Откуда: Primorye
В РКНArkadique писал(а): ↑25 май 2018, 14:50 При выпоолнении /tool fetch url="https://api.telegram.org/botxxxxxxxx/se ... xx&text=xx" получаю
status: failed
failure: ssl connection error: internal error (6)
при этом через браузер отправка сообщения работает. В чем может быть проблема?
-
- Сообщения: 2
- Зарегистрирован: 25 май 2018, 14:46
Не в РКН, браузер-то ходит без проблем. Никаких обходов блокировок в браузере нет, специально попробовал древний IE11, который первый раз запустил вообще.
- Kato
- Сообщения: 271
- Зарегистрирован: 17 май 2016, 04:23
- Откуда: Primorye
браузер одно, апи другое
-
- Сообщения: 1
- Зарегистрирован: 01 июн 2018, 22:44