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

    count-only в REST API

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    count-only в REST API, RouterOS
     
    aleab
    Guest
    #1
    0
    08.05.2023 20:21:00
    Привет, я пытаюсь получить через REST API общее количество Wi-Fi клиентов. Сейчас тестирую на своём HAP ax2 с ROS 7.9. На MikroTik использую команду /interface/wifiwave2/registration-table/print count-only, где ssid=“WIFI GUEST”, а через REST API пытаюсь сделать так:

    curl -k -u admin:12345678 -X POST https://10.2.1.1:10443/rest/interface/wifiwave2/registration-table/print

    — здесь вижу всех Wi-Fi клиентов (на всех SSID).

    Пробую фильтр:

    curl -k -u admin:12345678 -X POST https://10.2.1.1:10443/rest/interface/wifiwave2/registration-table/print --data ‘{“.query”: [“ssid=WIFI GUEST”]}’ -H “content-type: application/json”

    Сейчас использую ноутбук с Windows 11, и получаю ошибку:

    {“detail”:“Invalid JSON”,“error”:400,“message”:“Bad Request”}  
    curl: (3) bad range in URL position 2: [ssid=WIFI GUEST]}’ ^

    И не могу найти документацию, как использовать команду “count-only”. Можете помочь? Спасибо!
     
     
     
    Amm0
    Guest
    #2
    0
    21.09.2023 14:51:00
    Извини, думаю, твоя проблема в том, что ты ставишь одинарные кавычки вокруг URL, и я бы на всякий случай использовал "Content-Type", а не просто строчные буквы.  
    curl -k -u admin:12345678 -X POST ‘https://10.2.5.1:10443/rest/tool/netwatch/print’ --data ‘{“.query”: [“host=10.2.5.200”]}’ -H “Content-Type: application/json”
     
     
     
    Spidermila
    Guest
    #3
    0
    24.08.2023 11:01:00
    Мне не удалось воспроизвести вашу проблему точно. Мой запрос ниже работает как положено:  
    curl -k -u test:test -X POST https://192.168.1.1/rest/caps-man/registration-table/print --data '{".query": ["ssid=myssid"]}' -H "content-type: application/json"

    Он возвращает те же результаты, что и эта команда в консоли:  
    /caps-man/registration-table/print, где ssid="myssid"  

    Думаю, проблема может быть связана с пробелом в SSID. Попробуйте изменить SSID так, чтобы в нем не было пробелов, чтобы проверить.  

    Надеюсь, это поможет.
     
     
     
    rextended
    Guest
    #4
    0
    24.08.2023 11:08:00
    Попробуй убрать пробел в имени SSID или добавь кавычки в запрос.
     
     
     
    Amm0
    Guest
    #5
    0
    24.08.2023 13:04:00
    POST требует знания “бинарного” API Mikrotik... Проблема в том, что .query с POST подчиняется тем же правилам, что и API, то есть конец массива .query описывает and/or и прочее. Смотрите https://help.mikrotik.com/docs/display/ROS/API#API-Queries. А «атрибуты без опций», например print с “count-only”, должны быть булевыми ключами-значениями в REST POST, например { …, “count-only”: true }.

    curl -l -u $myuser -X POST http://$myrouter/rest/ip/address/print --data '{".query": ["disabled=yes","#|"], "count-only": true}'
     
     
     
    Amm0
    Guest
    #6
    0
    24.08.2023 13:35:00
    Думаю, кавычки действительно сломают это… Здесь уже свой собственный элемент, так что «=» — разделитель для атрибутов, а следующий элемент массива — это следующая вещь, так что пробелы не должны быть проблемой.
     
     
     
    aleab
    Guest
    #7
    0
    21.09.2023 14:15:00
    Извините, извините, извините! Я пытаюсь с Windows ПК, и у меня ошибка ниже… но на Linux всё работает нормально… Понимаю, что я поменял SSID без пробелов… Но сейчас я хочу мониторить netwatch и пытаюсь выполнить команду curl -k -u admin:12345678 -X POST https://10.2.5.1:10443/rest/tool/netwatch/print --data '{".query": ["host=10.2.5.200"]}' -H "content-type: application/json", но получаю ошибку {"error":415,"message":"Unsupported Media Type"} curl: (3) bad range in URL position 2: [host=10.2.5.200]}' ^ при том что пробелов здесь нет… Я думал использовать comment, но там много пробелов, поэтому решил использовать host. Команда curl -k -u admin:12345678 -X POST https://10.2.5.1:10443/rest/tool/netwatch/print работает нормально. Есть у вас какие-нибудь предложения? Заранее спасибо!
     
     
     
    Amm0
    Guest
    #8
    0
    21.09.2023 14:43:00
    Твой первый пример должен работать, но у меня тоже не работает. Зато если в URL вместо “…/print” использовать “…/getall”, то строка с “.query” начинает работать. REST API с POST-методами — это, по сути, тонкий прокси для «старого» API, так что всё это в основном относится и к REST с POST: https://help.mikrotik.com/docs/display/ROS/API#API-Commanddescription

    getall  
    Команда getall доступна там, где доступна команда print в консоли (getall — это псевдоним для print). Ответы содержат свойство =.id=Item, внутренний номер элемента.  
    Мне кажется багом, что «print с .query» не работает… но думаю, что /getall это обходит.  
    Например, если это «псевдоним для print», то должно работать так же, но тут почему-то нет…
     
     
     
    aleab
    Guest
    #9
    0
    21.09.2023 18:21:00
    Извиняюсь за задержку. Подтверждаю, что в Linux (AlmaLinux 8.8) с curl версии 7.61.1 (x86_64-redhat-linux-gnu) libcurl/7.61.1 OpenSSL/1.1.1k zlib/1.2.11 brotli/1.0.6 libidn2/2.2.0 libpsl/0.20.2 (+libidn2/2.2.0) libssh/0.9.6/openssl/zlib nghttp2/1.33.0 все команды работают отлично…

    curl -k -u admin:12345678 -X POST https://x.x.x.x:10443/rest/tool/netwatch/print | jq .

    и также

    curl -k -u admin:12345678 -X POST https://x.x.x.x:10443/rest/tool/netwatch/getall | jq .

    тот же результат. Работает также

    curl -k -u admin:12345678 -X POST https://x.x.x.x:10443/rest/tool/netwatch/print --data '{".query": ["host=1.1.1.1"]}' -H "content-type: application/json" | jq . | grep status

    а также

    curl -k -u admin:12345678 -X POST https://x.x.x.x:10443/rest/interface/wifiwave2/registration-table/print --data '{".query": ["ssid=WIFI GUEST"], "count-only": true}' -H "content-type: application/json" | jq .

    конечно, можно опустить | jq . Я пробовал на hap ac2 (ROS 7.11.2) и hap ax2 (ROS 7.11.2).
     
     
     
    Amm0
    Guest
    #10
    0
    21.09.2023 20:48:00
    Так что теперь всё работает? Я бы очень внимательно относился к кавычкам в Windows. " " — это не то же самое, что „ ” — обратите внимание на тонкие «умные кавычки»… И я тоже использую одинарные кавычки ’ ‘ вокруг URL в Windows: ’ http…/netwatch/print ' — пути в Windows странные. Не могу сказать, что это именно ваши проблемы, но эти два момента я бы советовал проверять в Windows.
     
     
     
    aleab
    Guest
    #11
    0
    22.09.2023 05:41:00
    Да, для удобства, когда я обращался к API, я использовал Windows, но моя цель — работать на Linux, потому что хочу использовать вместе с сервером Zabbix (то есть на Linux). Практически моя проблема решилась, потому что теперь я использую Linux. Но если кто-то хочет работать на Windows, проблемы всё ещё остаются... Думаю, дело в кавычках — одинарных, двойных и так далее.
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2025 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры