Перейти к содержимому
Калькуляторы

Микротик скрипт отправка в телеграмм информации о динамическом IP (решено)

Помогите разобраться, пожалуйста.
Имеется вот такой скриптик, который при получении динамического IP отправляет информацию об устройстве в телегу.

:if ($leaseBound = 1) do={
/ip dhcp-server lease;
:foreach i in=[find dynamic=yes] do={
:local dhcpip
:set dhcpip [ get $i address ];
:local clientid
:set clientid [get $i host-name];
:if ($leaseActIP = $dhcpip) do={
:local comment "New IP"
:set comment ( $comment . ": " .  $dhcpip . ": " . $clientid);
/log error $comment;
/tool fetch url="https://api.telegram.org/botXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXX/sendMessage?chat_id=XXXXXXXXX&text=IP:$leaseActIP;$leaseActMAC;SRV:$leaseServerName;HN:$clientid"
}
}
}

так вот, при срабатывании в телегу валится 5-10 сообщений.

New Client IP:ХХХ.ХХХ.ХХХ.ХХХ 00:00:00:00:00:00 SRV:home_net HN:android-412b2a0b5cf421b6 signal-strength:-81dBm@1Mbps

подскажите, где кольцо, в чем ошибка?

Изменено пользователем Yur0k

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Yur0k , у Вас обрабатываются ВСЕ, в том числе, ранее выданные адреса в конструкции 

:foreach i in=[find dynamic=yes]

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

скрипт отрабатывает при выдаче в dhcp. "Lease Script"

соответственно кроме только что выданного нет больше.. его и швыряет в отчет много раз

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Yur0k , попробуйте в fetch использовать keep-result=no

Изменено пользователем nkusnetsov

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

27 минут назад, nkusnetsov сказал:

@Yur0k , попробуйте в fetch использовать keep-result=no

 

image.thumb.png.01f610926e92ded5d37e3b1d10274e07.png

без изменений.. :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Yur0k , а в логах что? Команда "/log error $comment" тоже несколько раз отрабатывает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 час назад, nkusnetsov сказал:

@Yur0k , а в логах что? Команда "/log error $comment" тоже несколько раз отрабатывает?

да, тоже самое

image.png.88eea004f25e13dd94bece98bfa0f2b7.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 часа назад, nkusnetsov сказал:

@Yur0k , а в логах что? Команда "/log error $comment" тоже несколько раз отрабатывает?

Я сильно виноват.... я не тот скрипт выложил. верхний отрабатывает нормально. мне нужен уровень сигнала. добавляем запрос и получается куча сообщений.

:if ($leaseBound = 0) do={
/int wire reg;
:foreach i in=[find] do={
:local ss
:set ss [get $i signal-strength];

/ip dhcp-server lease;
:foreach i in=[find dynamic=yes] do={
:local dhcpip
:set dhcpip [ get $i address ];
:local clientid
:set clientid [get $i host-name];


:if ($leaseActIP = $dhcpip) do={
:local comment "New IP"
:set comment ( $comment . ": " .  $dhcpip . ": " . $clientid. ": " . $ss);
/log error $comment;
/tool fetch url="https://api.telegram.org/botXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXX/sendMessage?chat_id=XXXXXXXXX&text=IP:$leaseActIP;$leaseActMAC;SRV:$leaseServerName;HN:$clientid"
}
}
}
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

7 часов назад, Yur0k сказал:

/int wire reg; :foreach i in=[find]

Вот и ответ. Количество сообщений = количеству зарегистрированных на ТД клиентов.
Поиск в таблице регистрации надо провести единожды (один новый мак) по leaseActMAC, типа
/int wire reg;

:foreach i in=[find mac-address=$leaseActMAC]

Изменено пользователем nkusnetsov

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.