Добрый день. Имеется скрипт отправки аллертов в телегу. Подскажите как я могу получить вместо [/system identity get name] идентификатора микротика чтобы мне подставлялся адрес бридж интерфейса /ip addresses bridge?
:global lastTime
:global output
:global mtIdentity [/system identity get name];
:global botID "botxxxxx" ;
:global myChatID "xxxx" ;
:local LogGet [ :toarray [ /log find topics~"critical" || message~"login failure" || message~"[Ff]ailure" ] ] ;
:local LogtLineCount [ :len $LogGet ] ;
if ($LogtLineCount > 0) do={
:local currentTime "$[ /log get [ :pick $LogGet ($LogtLineCount -1) ] time ]";
:if ([:len $currentTime] = 10 ) do={
:set currentTime [ :pick $currentTime 0 10 ];
}
:set output "$currentTime - $[/log get [ :pick $LogGet ($LogtLineCount-1) ] message ]";
:if (([:len $lastTime] < 1) || (([:len $lastTime] > 0) && ($lastTime != $currentTime))) do={
:set lastTime $currentTime ;
:tool fetch url=("https://api.telegram.org/$botID/sendmes ... mtIdentity\" : $output") keep-result=no
}
}
Получение ip адреса вместо идентификатора
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
-
- Сообщения: 8
- Зарегистрирован: 25 май 2020, 17:47
Заменить на :global InterfaceBridge [/ip address get [find interface="Имя_вашего_бриджа"] address]
Дальше вставляете переменную $InterfaceBridge в текст, отправляемый вашему боту.
-
- Сообщения: 11
- Зарегистрирован: 09 янв 2021, 22:13
Огромное спасибо! РаботаетFatherEthernet писал(а): ↑27 дек 2021, 12:17Заменить на :global InterfaceBridge [/ip address get [find interface="Имя_вашего_бриджа"] address]
Дальше вставляете переменную $InterfaceBridge в текст, отправляемый вашему боту.
- Virtue
- Сообщения: 148
- Зарегистрирован: 07 мар 2014, 10:17
но есть один ньюанс.. если у вас будет например несколько адресов на интерфейсе, может выдать такую ошибку: invalid internal item number
тогда придется добавлять фильтр поиска, чтоб находился только 1 адрес
-
- Сообщения: 8
- Зарегистрирован: 25 май 2020, 17:47
Согласен с Вами, такой вариант возможен... Просто понадеялся, что ТС будет достаточно и этого.

Как вариант, можно использовать foreach:
Код: Выделить всё
:foreach IpAddress in=([/ip address find where interface="bridge1"]) do={
:set $InterfaceBridge value=([/ip address get $IpAddress value-name=address]." ".$InterfaceBridge)}
-
- Сообщения: 140
- Зарегистрирован: 18 мар 2021, 12:45
Еще вариант добавить комментарий и искать уже по нему, ну а вдруг кто не знает.