Routeros 中是否存在 curl 等效命令?

Routeros 中是否存在 curl 等效命令?

刚开始使用 routeros,在搜索了官方文档后拿来出现

我需要向 REST API 发出 POST 请求,但找不到任何curl类似命令。是否可以以某种方式安装 curl?

答案1

不幸的是,无法在标准 Mikrotik 安装上安装 curl。

正如您已经发现的,从 vanilla mikrotik 安装发出 http 请求的唯一方法是使用 fetch。

但它不支持POST请求,只支持GET。

根据您的具体情况,此问题有几种解决方案。

如果您在 x86 机器上使用 5.x 版本,那么有一个 ISO 可以在 Mikrotik 下安装 debian,这样您就可以使用 ssh 和 apt-get 在 Mikrotik 上安装所需的任何 debian 包。

但是 curl 将无法使用 mikrotik 的脚本语言或任何其他直接来自 mikrotik 的信息。

由于该 ISO 不仅修补了 mikrotik 以便能够安装 debian 软件包,而且还破解了 mikrotik 许可证,出于显而易见的原因,我无法告诉您有关它的更多详细信息。

如果您使用 Routerboard 硬件(有少数例外)并且有足够的 RAM(至少 64MB),那么另一种(合法)方法是创建一个 metarouter(本质上是一个 VM)并在其上使用 openwrt 映像。

然后在 openwrt 上你可以安装任何你喜欢的包并做你需要做的事情。

再次强调,您将无法使用此方法访问任何 mikrotik 的内部结构。

答案2

Routeros 手册页关于 fetch (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"              

相关内容