Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • 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
    Попытка чтения внутреннего ID меню

    Попытка чтения внутреннего ID меню

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Попытка чтения внутреннего ID меню, RouterOS
     
    Reiney
    Guest
    #1
    0
    08.08.2012 17:40:00
    Привет всем!

    Я пишу скрипт для сброса выбранных PPPoE-соединений. Пытаюсь прочитать внутренний ID (то есть запихнуть его в переменную нужного типа). "Put" всей строки для выбранного соединения показывает ".id" как имя переменной, но не могу как-то это использовать. Вот мой тестовый скрипт на данный момент... сбрасывает выбранный интерфейс CPE один раз в день в 7:00 утра:

    {
    :local cpename "mimosa";
    :local ifname ("<" . "pppoe-" . $cpename . ">");
    :put $cpename;
    :put $ifname;
    :local ifstr [/interface get [find name=$ifname]];
    :local idstr [pick $ifstr 0];
    :put $idstr;
    }

    ---- вывод ----
    mimosa .id=*104c0

    Заранее спасибо!
    ~Reiney
     
     
     
    psamsig
    Guest
    #2
    0
    08.08.2012 18:13:00
    В переменной $ifstr будет содержаться массив идентификаторов, а в $idstr — первая запись из этого массива. Их можно использовать как угодно: /interface set $ifstr disabled=yes /interface set $idstr disabled=yes или /interface remove $ifstr /interface remove $idstr. В вашем текущем примере это будет одно и то же (поскольку не может быть больше одного интерфейса с конкретным именем).
     
     
     
    Reiney
    Guest
    #3
    0
    09.08.2012 06:33:00
    Спасибо за ответ. К сожалению, ни один из предложенных вами примеров не работает. Интерфейсы, которые я пытаюсь удалить, были динамически созданы через PPP. Работает вот что: можно сделать что-то вроде "/ppp active remove xx", где "xx" – это "номер элемента", который вы видите при выполнении "/ppp active print". Именно этот номер элемента (также известный как Internal ID??) мне нужно извлечь из строки информации о подключении. ~Reiney
     
     
     
    psamsig
    Guest
    #4
    0
    09.08.2012 08:05:00
    Ах, я пропустил проблему: `:local ifstr [/interface get [find name=$ifname]];` должно быть `:local ifstr [/interface find name=$ifname];`
     
     
     
    Reiney
    Guest
    #5
    0
    09.08.2012 19:02:00
    Это вообще не работает... Вот "свежий" пример: Цель — указать имя соединения ("main-2" в этом примере) и выдать команду "/ppp active remove xx", чтобы отключить указанное соединение. Вот что возвращает /ppp active print: [admin@rb0-dj2] /system script> /ppp active print Flags: R - radius NAME SERVICE CALLER-ID ADDRESS UPTIME ENCODING 0 R general-g… pppoe 00:27:22:72:B6:5D 63.233.220.144 1w5d6… 1 R general-g… pppoe 00:25:9C:5A:2E:F2 63.233.220.233 1w2d1… | | | 22 R santo-1 pppoe 00:60:B3:45:31:E0 63.233.220.158 1d19h… 23 R main-2 pppoe 00:0D:93:01:B6:9F 63.229.162.175 1d19h… 24 R cerro-chato pppoe 00:27:22:22:5F:29 63.233.220.181 1d19h… Вот наш пример, это "номер пункта" 23. Вот свежий пример скрипта. Я вставил "address" для теста: сбрасывает выбранный интерфейс cpe один раз в день в 7:00 утра { :local cpename “main-2”; :local ifstr [/ppp active get [find name=$cpename] address ]; :put $cpename; :put $ifstr; } … и я получаю это: [admin@rb0-dj2] /system script> run cpe_reset main-2 63.229.162.175 Если я заменю "uptime" на "address", я получу это: main-2 1d19:32:10 Итак, как мне получить Item Number? Он отображается в выводе команды как "#". Если я запускаю скрипт без указания переменной, которую я хочу, я получаю это: main-2 .id=*104a0;name=main-2;service=pppoe;caller-id=00:0D:93:01:B6:9F;address=63.229.162.175;uptime=1d19:33:08;encoding=;session-id=2172704812;limit-bytes-in=0;limit-bytes-out=0;radius=false Первое поле очень похоже на какой-то номер меню/ID, и оно в шестнадцатеричном формате; Но как мне его вытащить??? Спасибо еще раз!
     
     
     
    psamsig
    Guest
    #6
    0
    09.08.2012 19:27:00
    Все это делает одно и то же: /ppp active remove [find name="main-2] {
       :local cpename "main-2";
       /ppp active remove [find name=$cpename]
    } {
       :local cpename "main-2";
       :local o [/ppp active find name=$cpename]
       /ppp active remove $o
    } /ppp active {
       :local cpename "main-2";
       :local o [find name=$cpename]
       remove $o
    }
     
     
     
    Reiney
    Guest
    #7
    0
    11.08.2012 03:50:00
    Ах… Теперь я понял! Спасибо огромное за отличные примеры, ~Reiney
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры