- Linguaggio
- 🐍 Python
- Pacchetto
dojo-swos·import dojo.swos- Ultima versione
- 0.1.0 · 9 Novembre 2026
- Richiede
- Python ≥ 3.9
- Dipendenze
- nessuna
- Licenza
- MIT
- Linguaggio
- 🐘 PHP
- Pacchetto
dojo/swos·Dojo\Swos- Ultima versione
- 0.1.0 · 9 Novembre 2026
- Richiede
- PHP ≥ 8.1
- Dipendenze
ext-curl *,ext-json *- Licenza
- MIT
Funziona con: SwOS 2.x (verificata su SwOS 2.16); smart switch MikroTik con SwOS, serie CRS3xx e affini.
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-swosLa 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.swos import SwOS
sw = SwOS("192.0.2.10") # utente admin, password vuota (default SwOS)
print(sw.system()["identity"]) # -> SWOS
for p in sw.ports():
print(p["name"], "UP" if p["link"] else "giu'")
# configurare una VLAN (attento alla porta di gestione!)
sw.set_vlans([{"vid": 10, "ports": [2, 3], "name": "lab"}])
# scrivi via b-file, verifica via SNMP
sw.set_snmp(location="sala-rack")Installazione (PHP)
composer config repositories.dojo composer https://mikrotikdojo.com/composer/<il-tuo-indirizzo>/
composer require dojo/swosLa 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\Swos\SwOS;
$sw = new SwOS("192.0.2.10"); // utente admin, password vuota (default SwOS)
echo $sw->system()["identity"]; // -> SWOS
foreach ($sw->ports() as $p) {
echo $p["name"], $p["link"] ? " UP\n" : " giu'\n";
}
// configurare una VLAN (attento alla porta di gestione!)
$sw->setVlans([["vid" => 10, "ports" => [2, 3], "name" => "lab"]]);Che cosa fa
dojo.swos parla con gli smart switch MikroTik che girano SwOS attraverso la sua interfaccia HTTP non documentata — i cosiddetti b-file (sys.b, link.b, vlan.b…). SwOS ufficialmente si gestisce solo dal browser: questa libreria apre quel canale da codice, così puoi leggere lo stato, i contatori e la configurazione, e scrivere la configurazione, senza aprire la GUI.
Cosa fa: legge sistema (identity, IP, temperatura, ventole), porte (link, velocità, nomi), tabella MAC, statistiche per-porta, VLAN, RSTP e SNMP; scrive identity, impostazioni SNMP e tabella VLAN. Incapsula il formato b-file (numeri esadecimali, stringhe in hex-ASCII, bitmask per-porta, IP little-endian) e la Digest authentication.
Quando serve: automazione e provisioning degli switch SwOS, backup della configurazione, monitoraggio del traffico, script di controllo — tutto ciò che la GUI fa a mano, ma ripetibile.
Limiti: SwOS usa HTTP in chiaro con Digest auth (niente HTTPS): va usata su reti fidate o in laboratorio. Il formato b-file è frutto di reverse-engineering e MikroTik potrebbe cambiarlo tra le versioni. La scrittura è immediata: una VLAN sbagliata sulla porta di gestione taglia l’accesso.
Versioni
| Versione | Novità | File |
|---|---|---|
| 0.1.0 PHP ultima 9 Novembre 2026 | Prima versione pubblica (PHP). Richiede PHP 8.1+ con le estensioni curl e json. Namespace |
|
| 0.1.0 Python ultima 9 Novembre 2026 | Prima versione pubblica. Lettura di sistema, porte, VLAN, RSTP, SNMP, tabella MAC e statistiche; scrittura di identity, SNMP e VLAN. Nessuna dipendenza esterna (solo libreria standard). |
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
Funziona con RouterOS?
No: è pensata per SwOS, il sistema operativo switch di MikroTik. Per RouterOS esiste già l'API binaria e la REST ufficiali. Sugli apparati dual-boot vale quando sono avviati in SwOS.
Che credenziali servono?
Le credenziali di SwOS, che sono separate da quelle di RouterOS. Il default è utente admin con password vuota: cambiala subito su una rete vera.
Serve l'HTTPS?
No, SwOS espone solo HTTP con Digest authentication. Per questo la libreria va usata su reti fidate o in laboratorio, non esposta su Internet.
Posso configurare le VLAN da codice?
Sì, sia in lettura sia in scrittura (POST sulla tabella vlan.b). Attenzione a non isolare la porta da cui amministri, e ricordati di salvare la config in SwOS (Actions → Save Config).
Legge anche il PoE e i consumi?
Sì sui modelli con PoE, dai b-file. Via SNMP invece PoE e consumi non sono esposti: per quei dati serve la libreria.