Linguaggio
🐍 Python
Pacchetto
dojo-ros · import dojo.ros
Ultima versione
0.1.0 · 10 Novembre 2026
Richiede
Python ≥ 3.9
Dipendenze
nessuna
Licenza
MIT
Linguaggio
🐘 PHP
Pacchetto
dojo/ros · Dojo\Ros
Ultima versione
0.1.0 · 10 Novembre 2026
Richiede
PHP ≥ 8.1
Dipendenze
ext-json *
Licenza
MIT

Funziona con: RouterOS con API binaria abilitata (presente da RouterOS 3.x); backend REST opzionale su RouterOS 7.1+. Verificata su RouterOS 7.25 (API 8728, api-ssl 8729 e REST).

Libreria del progetto indipendente MikroTik Dojo: non è software MikroTik né è approvata da MikroTik. Provala prima in laboratorio.

Installazione e uso

Installazione (Python)

pip install --index-url https://mikrotikdojo.com/pypi/<il-tuo-indirizzo>/simple/ dojo-ros

La libreria si installa con pip dall'indice del dojo, con un indirizzo personale riservato a chi è nel dojo. Entrare è gratis: ti serve solo la tua email.

Entra gratis nel dojo Sono già iscritto

Esempio d'uso (Python)

from dojo.ros import Ros

with Ros("192.0.2.1", "admin", "password") as r:
    print(r.identity())
    res = r.resource()
    print(res["board-name"], "RouterOS", res["version"])

    # query + proplist
    for i in r.cmd("/interface/print", "?running=true", "=.proplist=name,type"):
        print(i["name"], i["type"])

    # scrivere (attento all'interfaccia di gestione!)
    r.cmd("/ip/address/add", address="10.0.0.1/24", interface="bridge1")

# backend REST: stessa interfaccia, basta un flag
with Ros("192.0.2.1", "admin", "password", rest=True) as r:
    print(r.identity())

Installazione (PHP)

composer config repositories.dojo composer https://mikrotikdojo.com/composer/<il-tuo-indirizzo>/
composer require dojo/ros

La libreria si installa con Composer dal repository del dojo, con un indirizzo personale riservato a chi è nel dojo. Entrare è gratis: ti serve solo la tua email.

Entra gratis nel dojo Sono già iscritto

Esempio d'uso (PHP)

use Dojo\Ros\Ros;

$r = new Ros("192.0.2.1", "admin", "password");   // API binaria, 8728
$r->connect();
echo $r->identity(), "\n";
$res = $r->resource();
echo $res["board-name"], " RouterOS ", $res["version"], "\n";

foreach ($r->cmd("/interface/print", ["?running=true", "=.proplist=name,type"]) as $i) {
    echo $i["name"], " ", $i["type"], "\n";
}
$r->close();

// backend REST: stessa interfaccia
$r = new Ros("192.0.2.1", "admin", "password", null, false, 10, true);

Che cosa fa

dojo.ros parla con i router MikroTik che girano RouterOS usando l’API binaria nativa (porta 8728, o 8729 con TLS = api-ssl): il protocollo a «frasi» con cui si automatizza un router da sempre, presente su ogni versione e indipendente dal web server. È la libreria «madre» della famiglia dojo.*.

Cosa fa: esegue qualsiasi comando (/interface/print, /ip/address/add…) e ti restituisce i record come dizionari; gestisce le query (?running=true), la .proplist, e il login in entrambi gli schemi (moderno 6.43+ in chiaro e challenge-response MD5 pre-6.43). Scorciatoie pronte per identity, /system/resource, interfacce, indirizzi, rotte e log.

Due trasporti, stessa interfaccia: di default l’API binaria; con un flag passa alla REST API (/rest, RouterOS 7.1+, HTTP/JSON) senza cambiare il tuo codice — cmd() resta identico, cambia solo il trasporto sotto.

Quando serve: provisioning e automazione, backup della configurazione, monitoraggio, dashboard, integrazione con altri sistemi. Tutto ciò che faresti a mano in terminale, ripetibile.

Attenzione: i comandi vengono applicati davvero: un indirizzo o una regola firewall sbagliata sull’interfaccia di gestione taglia l’accesso. Sul filo, l’API 8728 è in chiaro (credenziali comprese): su reti non fidate usa api-ssl o la REST su HTTPS. Nessuna dipendenza esterna (solo libreria standard).

Versioni

VersioneNovitàFile
0.1.0 PHP ultima
10 Novembre 2026

Prima versione pubblica (PHP). Richiede PHP 8.1+ (il backend REST opzionale usa anche l'estensione curl). Namespace Dojo\Ros.

  • dojo-ros-0.1.0.zip 8,6 KB
    sha256 9c767e1b92bc77d231a28b19d80480808608bd657283bfe28afe5e249788123b
    .ots · confermata nel blocco Bitcoin 975.308
0.1.0 Python ultima
10 Novembre 2026

Prima versione pubblica. API binaria (8728/8729) con login 6.43+ e challenge-response legacy, query e proplist; backend REST opzionale (rest=True, RouterOS 7.1+). Nessuna dipendenza esterna (solo libreria standard).

  • dojo_ros-0.1.0-py3-none-any.whl 9,9 KB
    sha256 a9014371041a9fa778206c709b3126fa53073967da89eceae1b354d2ea293070
    .ots · confermata nel blocco Bitcoin 975.308
  • dojo_ros-0.1.0.tar.gz 11,3 KB
    sha256 d1ef9c576f646f5e2e768f0e155d67361d55032cb8578b0a22d2efc3a9ed4160
    .ots · confermata nel blocco Bitcoin 975.308

Ogni file ha la sua impronta SHA-256 (pip e Composer la controllano da soli) e una prova OpenTimestamps registrata su Bitcoin: chiunque può verificare che il file è quello pubblicato in quella data. I file si scaricano solo se sei nel dojo.

Gli howto che la usano

Domande frequenti

Usa l'API binaria o la REST?

Entrambe. Di default la API binaria (8728/8729), che gira su ogni RouterOS anche vecchio e non richiede il web server. Con rest=True usa la REST (/rest, solo 7.1+): stessa interfaccia cmd(), cambia solo il trasporto. In dubbio, lascia il binario (il default).

Che porte servono?

Per l'API binaria 8728 (in chiaro) o 8729 (api-ssl, TLS); vanno abilitate in /ip/service. Per la REST il servizio www (HTTP) o www-ssl (HTTPS).

È l'API ufficiale MikroTik?

Sì: sia l'API binaria sia la REST sono protocolli ufficiali di RouterOS. dojo.ros è solo un client indipendente che li parla; non è affiliata a MikroTik.

L'api-ssl non si connette: perché?

Con api-ssl senza certificato RouterOS offre solo cifrari anonimi (ADH) che OpenSSL moderno rifiuta. La libreria li riammette di default così dialoga anche col router «di fabbrica»; per la verifica stretta del certificato passi un tuo contesto TLS.

Posso scrivere la configurazione, non solo leggerla?

Sì: cmd() esegue qualsiasi comando, add/set/remove compresi. Proprio per questo provala in laboratorio: un comando sbagliato sull'interfaccia di gestione ti disconnette.