- 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-rosLa 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.
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/rosLa 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.
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
| Versione | Novità | 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 |
|
| 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 ( |
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.