Leases comment в логе ROS

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Ответить
denis1978
Сообщения: 55
Зарегистрирован: 06 июн 2020, 09:52

06 июн 2020, 12:25

Здравствуйте! Помогите, плз, решить такой вопрос.

В dhcp leases имеем около сотни записей. Все они Make Static и имеют уникальные comment.
При выдаче адреса dhcp сервером, в логе ROS появляется запись вида:

dhcp assigned IP xxx.xxx.xxx.xxx to MAC xx:xx:xx:xx:xx:xx
dhcp deassigned IP xxx.xxx.xxx.xxx from MAC xx:xx:xx:xx:xx:xx

Как сделать, чтобы помимо IP и MAC в логе было видно comment прописанный в lease?
Понимаю, что должен быть скрипт в Lease Script, но все попытки к успеху не привели.
В логе появляется пустая строка script,info.

RB3011, ROS 6.47


Sertik
Сообщения: 1092
Зарегистрирован: 15 сен 2017, 09:03

09 июн 2020, 22:31

Как то криво написано, но вот так работает, как Вы хотели с печатью комментария от хоста в лог, попробуйте:

Вставьте в /dhcp-server script

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

:if ($leaseBound = "1") do={
/ip dhcp-server lease 
:log info ("Device: ". "$[get [find active-mac-address=$leaseActMAC] host-name] ". "$[get [find active-mac-address=$leaseActMAC] comment]"."  was given an address "."$[get [find active-mac-address=$leaseActMAC] address]")
}
Последний раз редактировалось Sertik 10 июн 2020, 09:25, всего редактировалось 1 раз.


Чего не знаем то нагуглим
Sertik
Сообщения: 1092
Зарегистрирован: 15 сен 2017, 09:03

09 июн 2020, 23:50

Или так:

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

:if ($leaseBound = 1) do={
/ip dhcp lease
:log info ("This is "."$[get [find address=$leaseActIP] comment] "."$[get [find address=$leaseActIP] host-name]")
}
После в Вашем логе
dhcp assigned IP xxx.xxx.xxx.xxx to MAC xx:xx:xx:xx:xx:xx
появится
This is "коммент устройства получившего IP и его имя"

Так будет ясно кто получил адрес от DHCP-сервера.

Почему не работает просто:

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

:log info "$[get $leaseComment]"
не знаю. Вероятно comment устройства относится к вкладке lease, но хранится фиг знает где и не попадает во внутреннюю переменную вкладки $leaseComment - Микротиковцы не сделали.
При попытке /ip dhcp lease get comment мы должны указать чей comment мы хотим получить, ведь в лизе много устройств. Можно получить комментарии всех устройств циклом :foreach типа так:
:foreach i in=[/ip dhcp-server lease find] do={:local Leasecomment [/ip dhcp-server lease get $i comment];} по идентификатору, но зачем они нам все ? нам то нужен коммент подключившегося клиента ...
Ну не писать же в самом деле /ip dhcp-server lease get [find comment=$leaseComment] comment, тем более что всё равно работать не будет.

Кстати при dhcp deassigned IP xxx.xxx.xxx.xxx from MAC xx:xx:xx:xx:xx:xx
уже проблема получить данные коммент и имени хоста отключившегося устройства, так как они уже не Activ. У меня пока не получилось, хотя было бы целесообразно при dhcp deassigned IP xxx.xxx.xxx.xxx from MAC xx:xx:xx:xx:xx:xx также выдать в лог кто потерял адрес ...

Может знатоки что подскажут, что я один то мучаюсь ?
Последний раз редактировалось Sertik 10 июн 2020, 11:23, всего редактировалось 1 раз.


Чего не знаем то нагуглим
Sertik
Сообщения: 1092
Зарегистрирован: 15 сен 2017, 09:03

10 июн 2020, 11:18

Знатоки налетайте ! Podarok66 предлагаю перенести топик в раздел Скрипты.

Сделано! С уважением, podarok66
Последний раз редактировалось Sertik 10 июн 2020, 11:22, всего редактировалось 1 раз.


Чего не знаем то нагуглим
denis1978
Сообщения: 55
Зарегистрирован: 06 июн 2020, 09:52

10 июн 2020, 11:19

Спасибо Вам огромное! Ваш вариант работает.
Я уже голову сломал с $leaseComment.


Да при отключении не работает.


Sertik
Сообщения: 1092
Зарегистрирован: 15 сен 2017, 09:03

10 июн 2020, 11:50

Вот тут

https://wiki.mikrotik.com/wiki/Manual:I ... er#General

четко сказано, какие глобальные переменные доступны в lease-script:
Script that will be executed after lease is assigned or de-assigned. Internal "global" variables that can be used in the script:

leaseBound - set to "1" if bound, otherwise set to "0"
leaseServerName - dhcp server name
leaseActMAC - active mac address
leaseActIP - active IP address
lease-hostname - client hostname
lease-options - array of received options
Во-первых ясно что $leaseComment там нет. Комментарий хранится в другом месте.
Как только $leaseBound становится =0 (клиент перестает быть клиентом DHCP-сервера, все другие переменные из списка выше вероятно становятся не доступны.
По какому тогда признаку получать comment отключившегося клиента ? Можно попробовать по Маку (если запомнить leaseActMAC заранее при подключении в какую-нибудь свою переменную. Попробуем ...


Чего не знаем то нагуглим
Ответить