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

    API-запросы. Сложные запросы. Объясните, пожалуйста.

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    API-запросы. Сложные запросы. Объясните, пожалуйста., RouterOS
     
    luqasz
    Guest
    #1
    0
    01.05.2013 01:14:00
    Привет! Хотел бы использовать запросы чаще. Проблема в том, что я не понимаю всего, что написано на вики. Посмотри следующие примеры: у меня Routerboard с 5 ethernet-интерфейсами, 1 WLAN, 1 bridge. Вывести все интерфейсы, которые не type=wlan и type=bridge.
    `/interface/print`
    `=.proplist=type,.id`
    `?type=wlan`
    `?#!`
    `?type=bridge`
    `?#|`
    Выше работает нормально, но вот это:
    `/interface/print`
    `=.proplist=type,.id`
    `?type=wlan`
    `?#!`
    `?type=bridge`
    `?#|`
    должен вернуть все интерфейсы, которые не type=wlan,bridge. Мне должны быть показаны только ethernet-интерфейсы. Вместо этого получаю все интерфейсы. Это для меня не имеет смысла.
    `/interface/print`
    `=.proplist=type,.id`
    `?type=wlan`
    `?type=bridge`
    `?#|!`
    Этот запрос возвращает только ethernet-интерфейсы.
    `/interface/print`
    `=.proplist=type,.id`
    `?type=wlan`
    `?type=bridge`
    `?#&!`
    Этот запрос возвращает все интерфейсы. Как это соответствует закону де Моргана? Знак "!" заменяет верхнее значение на противоположное. Из написанного можно понять, что знак "!" всегда соответствует элементу по индексу = 0. Если это так, как отрицать элементы по другим индексам? Что такое "верхнее значение"? На вики в таблице, где описаны операции, часто используется слово ‘character’. Какой именно character? Какие символы разрешены?
    `/interface/print`
    `=.proplist=type,.id`
    `?type=wlan`
    `?#!`
    `?type=bridge`
    `?#!`
    `?#|`
    В вышеприведенном примере индексы в стеке: ?type=wlan имеет индекс стека = 0 ?type=bridge имеет индекс стека = 1. Я прав? Индекс, за которым следует символ, копирует значение по этому индексу в стек. Опять вопрос. Какой символ? Индекс, за которым следует конец слова, заменяет все значения значением по этому индексу. Если я напишу:
    `/interface/print`
    `?type=wlan`
    `?name=bridge`
    `?#0`
    то это будет преобразовано в:
    `/interface/print`
    `?type=wlan`
    `?name=wlan`
    Я прав? Последовательность десятичных цифр, за которой следует любой другой символ или конец слова, интерпретируется как индекс стека. Верхнее значение имеет индекс 0. Что это значит? 000101023123! "000101023123" — это последовательность десятичных цифр. Какой индекс это? После другого символа копируется верхнее значение. Значит, символ "." всегда указывает на значение по индексу стека = 0?
     
     
     
    nescafe2002
    Guest
    #2
    0
    27.09.2018 07:50:00
    API не поддерживает запросы в операциях множества. Раздели своё действие на два командных запроса: Print Set Print: /interface/wireless/print
    ?default-name=wlan1
    =.proplist=.id Результат: !re
    =.id=*C
    !done Установка с ID = *C (в этом примере): /interface/wireless/set
    =disabled=no
    =mode=ap-bridge
    =ssid=Testing Wifi Marketing
    =.id=*C Результат: !done Теперь ты упомянул tik4net, это намного проще: используя (var conn = tik4net.ConnectionFactory.OpenConnection(TikConnectionType.Api, "192.168.88.1", 8728, "admin", "password"))
     {
       var obj = conn.LoadList<InterfaceWireless>(conn.CreateParameter("default-name", "wlan1")).First();
       obj.Disabled = false;
       obj.Mode = tik4net.Objects.Interface.InterfaceWireless.WirelessMode.ApBridge;
       obj.Ssid = "Testing Wifi Marketing";
       conn.Save(obj);
     }
     
     
     
    rJIaB6yX
    Guest
    #3
    0
    21.07.2022 11:39:00
    Привет! Помогите, пожалуйста, составить Linux-команду для API Mikrotik, которая будет отображать MAC-адрес интерфейса PPPoE с заданным "remote-address". Хочется получить что-то вроде: read ip int mac t <<< “$(send_mikrotik_cmd “$ip” “${telnet_login}” “${telnet_password}” /ip arp print .proplist=address,mac-address,interface ?address=${remote-address})”. Это для IP-интерфейсов, а мне нужно для PPPoE, и "/ip arp" не подходит. Заранее спасибо!
     
     
     
    Deantwo
    Guest
    #4
    0
    14.05.2024 13:42:00
    Разве это не неправильно? Мне кажется, по умолчанию там используется логика "И". Значит, на этих двух шагах получается !(type=wlan) && type=bridge и !(type=wlan) && !(type=bridge) соответственно? Может, тогда, в 2013 году, было по-другому, но сейчас в инструкции написано следующее:

    PS: Почему блоки с кодом по-прежнему не работают на этом форуме после стольких лет? T_T
     
     
     
    maxfava
    Guest
    #5
    0
    15.01.2014 22:40:00
    Простой вопрос: хочу отключить пользователя от ppp active. Отправляю /ppp/active/remove?name=value, приходит ответ "done", но указанный пользователь (из value) не отключается. Есть какие-нибудь идеи?
     
     
     
    luqasz
    Guest
    #6
    0
    16.01.2014 09:49:00
    API-запросы поддерживаются только в командах print/getall. То, что вы опубликовали, явно является ошибкой/непонятным поведением API. Если запросы не поддерживаются в командах, кроме print/getall, то должно возвращаться сообщение об ошибке. Я пробовал с =name и с =.id – эффект тот же. Предлагаю сообщить об этой проблеме в службу поддержки MikroTik.
     
     
     
    maxfava
    Guest
    #7
    0
    17.01.2014 12:10:00
    Спасибо, в конце концов я нашёл решение: печатаю с подходящим запросом, получаю .id и потом выполняю команду remove для конкретного .id, и это работает. Согласен, что если я отправляю remove с фильтром ?name=xx и это не поддерживается, вместо возврата !done, должно возвращаться что-то вроде «?name не поддерживается в команде remove». Massimo
     
     
     
    Deantwo
    Guest
    #8
    0
    18.01.2016 14:49:00
    Я не вижу упоминания о запросах типа "начинается с x", "заканчивается на x" или "содержит x". Это просто невозможно? Примеры использования CLI: /interface print where name~"^ether" /interface print where name~"gateway$" /interface print where name~"master"
     
     
     
    boen_robot
    Guest
    #9
    0
    18.01.2016 15:33:00
    Невозможно… пока что (надеюсь). Смотри вот эту тему.
     
     
     
    Abdulrahman
    Guest
    #10
    0
    09.04.2018 14:34:00
    Огромное спасибо, заработало с использованием .id
     
     
     
    phamthinh2707
    Guest
    #11
    0
    27.09.2018 03:11:00
    Я сейчас пишу свое winforms приложение для подключения к роутеру Mikrotik, используя tik4net. Настраиваю Wifi Marketing и возникли небольшие трудности с преобразованием в API команду. Пример: /interface wireless set [ find default-name=wlan1 ] disabled=no mode=ap-bridge ssid=“Testing Wifi Marketing”. Мой конверт: /interface/wireless/set ?default-name=wlan1 =disabled=no =mode=ap-bridge =ssid=Testing Wifi Marketing
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2025 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры