Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Форум
    RouterOS
    Два вопроса о скрипте для аренды DHCP.

    Два вопроса о скрипте для аренды DHCP.

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Два вопроса о скрипте для аренды DHCP., RouterOS
     
    gutekpl
    Guest
    #1
    0
    22.04.2019 17:50:00
    У меня есть простой скрипт, который уведомляет меня через Telegram каждый раз, когда к гостевой Wi-Fi сети подключается новое устройство. global telegramMessage “$leaseActMAC подключено как гость и получен адрес $leaseActIP.” /system script run SendToTelegram Мой DHCP лизинг для гостей установлен на 6 часов, и я получаю 2 сообщения для каждого подключенного устройства — одно, когда оно получает новый DHCP лизинг, и второе через 6 часов, когда лизинг аннулируется. Могу ли я как-то отфильтровать это, чтобы получать только информацию о новых лизингах и пропускать аннулирование существующих? Второй вопрос касается перевода MAC-адреса в имя устройства. Предположим, что я назначаю статические лизинги для своих гостей — возможно ли как-то заменить MAC-адрес на имя устройства, которое я ввожу в статическом лизинге, и отображать его в этом сообщении?
     
     
     
    NetWorker
    Guest
    #2
    0
    14.05.2019 14:15:00
    Ладно, извини, что не ответил раньше. Во-первых, ты не показал, как ты разбираешь MAC, именно это меня и интересует в другом скрипте. Извини, что не уточнил это. В любом случае, я всегда рекомендую (и, насколько я знаю, Mikrotik тоже) хранить все скрипты в /system scripts и вызывать их оттуда. Это упрощает диагностику, когда что-то не работает. Также иногда возникают странности с правами, если запускать определенные скрипты из разных частей routerOS. Так что в твоем случае я бы просто вставил :execute "myscriptname"; в окно скрипта dhcp-lease. Далее используй короткую задержку в скрипте и проверь, существует ли MAC, который ты разбираешь, в телеграм-скрипте: :global leasemac; :delay 2; :if ([:len [/ip dhcp-server lease find where mac-address=$leasemac]!=0) do={ :execute "sendtotelegram";}
     
     
     
    gutekpl
    Guest
    #3
    0
    14.05.2019 16:28:00
    Дело в том, что я никак не разбираю этот мак. Это встроенная функция, которую я использую. Если бы я уже его разбирал, то, вероятно, моих знаний хватило бы, чтобы изменить его самостоятельно.
     
     
     
    NetWorker
    Guest
    #4
    0
    14.05.2019 16:59:00
    Лол, верно. Но как ты устанавливаешь эти переменные?
     
     
     
    gutekpl
    Guest
    #5
    0
    14.05.2019 19:04:00
    Они устанавливаются автоматически в процессе регистрации DHCP lease-script (строка; По умолчанию: “”) Скрипт, который будет выполнен после назначения или снятия аренды. Внутренние “глобальные” переменные, которые могут быть использованы в скрипте: leaseBound - установлен в “1”, если назначено, иначе установлен в “0” leaseServerName - имя DHCP сервера leaseActMAC - активный MAC адрес leaseActIP - активный IP адрес lease-hostname - имя хоста клиента https://wiki.mikrotik.com/wiki/Manual:IP/DHCP_Server
     
     
     
    NetWorker
    Guest
    #6
    0
    14.05.2019 20:26:00
    Ух ты, это для меня новость. Я не читал этот момент. Классно. Итак, по второму вопросу, пробовал использовать переменную hostname? Я знаю, что не все устройства корректно сообщают имя хоста. Кроме того, если ты действительно используешь статические аренды, можно попробовать закомментировать каждую аренду, используя MAC, прочитать комментарий, сохранить его в переменной и отправить. Вернёмся к первому вопросу, пробовал использовать переменную leaseBound с условием if для проверки? Я думаю, что при очистке аренды эта переменная уже может быть установлена в 0?
     
     
     
    gutekpl
    Guest
    #7
    0
    15.05.2019 10:06:00
    Ха, я прочитал тот мануал, который я вставил выше, в поисках переменной mac-адреса, но оказывается, что там также есть и другие переменные, которые мне сейчас нужны! если ($leaseBound = "1") do={  
    global telegramMessage "$"lease-hostname" ($leaseActMAC) получил адрес $leaseActIP от DHCP_guest"  
    /system script run SendToTelegram  
    } Теперь я получаю всего 1 сообщение при создании аренды, и у меня также есть имя клиента. Отличный брейншторм, спасибо. Если ты также можешь посмотреть сюда: http://forum.mikrotik.com/t/set-timer-or-some-other-way-to-prevent-script-from-running-multiple-times-in-short-time/130139/1 Идея с запуском планировщика из скрипта звучит здорово, но я не знаю, как этим управлять.
     
     
     
    NetWorker
    Guest
    #8
    0
    15.05.2019 14:27:00
    Рад, что у тебя все заработало!
     
     
     
    elico
    Guest
    #9
    0
    24.01.2021 08:26:00
    на основе: http://forum.mikrotik.com/t/using-fetch-tool-on-ppp-on-up-script/146201/6 Я только что протестировал, что можно сделать то же самое, что и в on-up, используя lease-script. Не нужно задавать глобальную переменную, просто используйте dont-require-permissions и напишите скрипт для lease-script. /system script export добавьте dont-require-permissions=yes name=dhcpLeaseBound owner=admin policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=\
       "if (\$leaseBound = \"1\") do={\r\
       \n    :log info \"\$\"lease-hostname\" (\$leaseActMAC) получил адрес \$leaseActIP от \$\"leaseServerName\"\"\r\
       \n}" Вы можете установить для скрипта “dont-require-permissions” в значение да. /system script set dhcpLeaseBound dont-require-permissions=yes Затем задайте скрипт для аренды DHCP с помощью: /ip dhcp-server set server-xyz lease-script=dhcpLeaseBound
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры