Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • Changelogs
  • 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
    Скрипт профиля пользователя IP-hotspot при входе в систему.

    Скрипт профиля пользователя IP-hotspot при входе в систему.

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Скрипт профиля пользователя IP-hotspot при входе в систему., RouterOS
     
    jacekes
    Guest
    #1
    0
    23.10.2012 11:32:00
    Привет, я пытаюсь создать скрипт, который будет отправлять syslog сообщения, как только пользователь на trial-аккаунте заходит в хот-спот. Я настроил отправку логов на мой syslog-сервер и определил скрипт в `/system script`. Имя скрипта связано с действием `on-login` профиля пользователя хот-спота, назначенного пользователям на trial-аккаунте. Исходный код скрипта выглядит так:
    :local freeuser [/ip hotspot active find where user=$user];
    :local freemac [/ip hotspot active get $freeuser mac-address];
    :local freeip [/ip hotspot active get $freeuser address];
    :log info ($freemac." ".$freeip);
    Это отлично работает, но только если зашёл только один пользователь (только одна запись в `/ip hotspot active`). Если пользователей двое и больше, я получаю сообщение об ошибке: `interrupted invalid internal item number`. Похоже, какая-то проблема с переменной `$user`. Я пытаюсь её использовать, потому что статья на вики о профилях пользователей хот-спота так и предлагает. Когда я пытаюсь использовать переменную напрямую, например: `:log info $user`, я получаю синтаксическую ошибку. Всё это происходит на RB433 под RouterOS v5.16. Где я ошибся?
    С уважением,
    Jacek
     
     
     
    nmarshall
    Guest
    #2
    0
    07.11.2012 16:07:00
    Ты или кто-нибудь из читающих это смог разобраться, как использовать переменную $user при входе в систему в профиле пользователя /ip hotspot, чтобы логировать, например, MAC-адрес?
     
     
     
    jacekes
    Guest
    #3
    0
    07.11.2012 16:38:00
    Да, код, который я упомянул выше:
    :local freeuser [/ip hotspot active find user=$user];
    :local freemac [/ip hotspot active get $freeuser mac-address];
    :local freeip [/ip hotspot active get $freeuser address];
    :log info ($freemac." ".$freeip);
    работает как надо и логирует MAC-адрес и IP-адрес пользователя. Нужно просто установить этот код в качестве значения параметра on-login в профиле пользователя /ip hotspot. Если скрипт определен в /system script и имя скрипта указано в качестве значения on-login, то переменная $user работать не будет.
     
     
     
    nmarshall
    Guest
    #4
    0
    07.11.2012 19:08:00
    Простите, я тут уже день голову ломаю, но есть ли шанс, что вы могли бы поделиться экспортом моей конфигурации при входе в систему? Если я правильно понимаю, моя настройка должна выглядеть так: on-login=“:local freeuser [/ip hotspot active find user=$user]; :local freemac [/ip hotspot active get $freeuser mac-address]; :local freeip [/ip hotspot active get $freeuser address]; :log info ($freemac." ".$freeip);”
     
     
     
    jacekes
    Guest
    #5
    0
    07.11.2012 19:39:00
    Конечно, вот: /ip hotspot user profile
    set [ find default=yes ] idle-timeout=none keepalive-timeout=2m on-login=":local who \$user;\r\
       \n:local whomac [/ip hotspot active get [find user=\$who] mac-address];\r\
       \n:local whoip [/ip hotspot active get [find user=\$who] address];\r\
       \n:log info (\$whomac.\" \".\$whoip);"
     
     
     
    nmarshall
    Guest
    #6
    0
    08.11.2012 14:01:00
    Спасибо за экспорт… Да, не знаю, в чём дело, я перепробовал кучу вариантов без успеха… Что-то простое, вроде: on-login=":log info \"Hello \$user\"". Будет логировать как положено, даже если это системный скрипт… Но что-то более сложное, как твой вариант: on-login=":local who \$user;\r\
       \n:local whomac [/ip hotspot active get [find user=\$who] mac-address];\r\
       \n:local whoip [/ip hotspot active get [find user=\$who] address];\r\
       \n:log info (\$whomac.\" \".\$whoip);" просто не логирует по какой-то причине… Если у тебя или у кого-то ещё есть какие-то идеи, что мне стоит проверить, но если у тебя просто работает, то я бы задумался о роутере… Какая самая ранняя версия, с которой тебе удалось запустить такой скрипт? У меня пока 4.17. Спасибо ещё раз!
     
     
     
    jacekes
    Guest
    #7
    0
    08.11.2012 20:09:00
    Я пробовал только на v5.21. Возможно, на следующей неделе будет время откатиться с 433 и проверить, заработает ли. А пока можешь попробовать улучшить свой простой, но рабочий скрипт. Например, попробуй заменить значение переменной $user на новую локальную переменную, например: :local tempvar $user;
    :log info tempvar … и так далее, добавляя следующие команды, чтобы получилось что-то похожее на код, который я вставлял в своем предыдущем сообщении. Так, возможно, ты сможешь понять, в какой момент скрипт начинает работать неправильно. Удачи! P.S. Делай это с Winbox. Скрипты в командной строке — это что-то ужасное, постоянно приходится экранировать все эти специальные символы и прочую ерунду.
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры