Скрипт проверки подключения конкретного mac + телега

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
normant
Сообщения: 2
Зарегистрирован: 14 фев 2018, 10:42

Добрый день. Прошу помочь с написанием скрипта. Задача следующая: Необходимо чтобы была проверка на конкретный mac адрес в поле wireles/registration. Там в поле uptime, если параметр например будет в промежутке от 1 до 5 минут, осуществлялась проверка, и только в пределах указанного параметра было осуществлено действие (отправка в телеграм). Последнюю часть кода с отправкой я примерно понимаю как написать, но первую часть с проверкой как то не могу выстроить в голове. И куда заносить скрипт? В systems/scripts?

p.s. НА самом деле возможно имеется более простое решения для задачи: если телефон подключился к ви-фи то отправляем уведомление. И при этом не спамим каждые 5 -10 минут о том что он подключен. Уведомления присылать только при подключении.


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

Если помочь то не вопрос. Давайте пишите и задавайте вопросы.


Есть интересная задача и бюджет? http://mikrotik.site
normant
Сообщения: 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. Подскажите как это сделать?


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

Ну так не отправляйте если ничего не поменялось то


Есть интересная задача и бюджет? http://mikrotik.site
enternight
Сообщения: 6
Зарегистрирован: 01 сен 2017, 11:57

normant писал(а): 14 фев 2018, 10:52 если телефон подключился к ви-фи то отправляем уведомление.
не помню где нашел, но скрипт элегантный и работает

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

: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


Arkadique
Сообщения: 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)
при этом через браузер отправка сообщения работает. В чем может быть проблема?


Аватара пользователя
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)
при этом через браузер отправка сообщения работает. В чем может быть проблема?
В РКН


Arkadique
Сообщения: 2
Зарегистрирован: 25 май 2018, 14:46

Не в РКН, браузер-то ходит без проблем. Никаких обходов блокировок в браузере нет, специально попробовал древний IE11, который первый раз запустил вообще.


Аватара пользователя
Kato
Сообщения: 271
Зарегистрирован: 17 май 2016, 04:23
Откуда: Primorye

браузер одно, апи другое


Takashi
Сообщения: 1
Зарегистрирован: 01 июн 2018, 22:44

Arkadique, попробуйте вручную завернуть трафик для api.telegram.org (149.154.167.220)
Изображение


Ответить