Существует ли команда, эквивалентная curl, в routeros?
Просто начинаю с routeros и после поиска официальных документов просто получаю
Мне нужно сделать запрос POST к API REST, но я не могу найти какой-либо curl
как команда. Можно ли как-то установить curl?
2 ответа
К сожалению, нет возможности установить curl на стандартную установку Mikrotik.
Единственный способ сделать http-запросы из установки vanilla mikrotik - использовать fetch, как вы уже нашли.
Но он не поддерживает POST-запросы, только GET.
Есть несколько решений этой проблемы в зависимости от вашей ситуации.
Если вы используете версию 5.x на компьютере с архитектурой x86, то существует ISO, который установит debian под Mikrotik, чтобы вы могли затем установить любой необходимый пакет debian на свой Mikrotik, используя ssh и apt-get.
curl не сможет использовать язык сценариев mikrotik или любую другую информацию напрямую из mikrotik.
Поскольку ISO не только исправляет микротик для возможности установки пакетов Debian, но и взламывает лицензирование микротик, по понятным причинам я не могу рассказать вам больше об этом.
Другой (законный) метод, если вы используете аппаратное обеспечение Routerboard (за некоторыми исключениями) и у вас достаточно ОЗУ (не менее 64 МБ), это создать мета-маршрутизатор (по сути, виртуальную машину) и использовать на нем образ openwrt.
Затем на openwrt вы можете установить любой пакет и сделать то, что вам нужно.
Опять же, вы не сможете получить доступ к внутренностям любого mikrotik с этим методом.
На странице руководства Routeros о выборке (https://wiki.mikrotik.com/wiki/Manual:Tools/Fetch) говорится, что она поддерживает POST:
Отправка информации на удаленный хост
Можно использовать запрос HTTP POST для отправки информации на удаленный сервер, который готов ее принять. В следующем примере мы отправляем географические координаты на страницу PHP:
/tool fetch http-method=post http-header-field="Content-Type: application/json" http-data="{\"lat\":\"56.12\",\"lon\":\"25.12\"}" url="http://testserver.lv/index.php"