
Python Speedtest è un semplicissimo microprogramma che consente di tenere sotto controllo le caratteristiche e la velocità della propria rete.
Quante volte ci siamo imbattuti in un rallentamento di rete proprio quando avevamo bisogno di caricare un file oneroso? Quante volte ci siamo chiesti quanto sarebbe durato un download (o un upload)? Quantre volte abbiamo effettuato reclami verso il nostro IPS a causa di malfunzionamenti, senza però disporre di appropriata documentazone del disservizio?
Per venire incontro a queste (e numerosissime altre) richieste, abbiamo deciso di pubblicare e commentare questo script in Python.
Come vedrete, si tratta di una manciata di righe di codice che però potrebbero risultare utili
Il codice
|
1 2 3 4 5 6 7 8 9 10 |
import speedtest st = speedtest.Speedtest() download = st.download() / 1024 / 1024 upload = st.upload() / 1024 / 1024 ping = st.results.ping print (f"Download speed : {download:.2f} Mbps") print (f"Upload speed : {upload:.2f} Mbps") print (f"Ping : {ping:.2f} ms") |
Per prima cosa importeremo il modulo speedtest, che contiene i metodi necessari per il monitoraggio. Come al solito, definiremo un oggetto st di tipo Speedtest, ed estraremo i valori di download ed upload chiamati dai relativi metodi. E’ ovviamente ppossibile modificare i parametri di up- e download. Setati in questa maniera, il teest durerdà meno di un minuto.
Al test è stato aggiunto un comando ping che si collega automaticamente al server del nostro IPS, ed esegue un test di velocità.
Per capire quale sia effettivamente il server sul quale si eseguono i test, basterà lanciare il seguente programma:
|
1 2 3 4 5 6 7 |
import speedtest st = speedtest.Speedtest() servernames = [] name = st.get_servers(servernames) print(name) |
Lo script riporterà una struttura contenente tutte le informazioni relative al server contattato.
Installazione del modulo
Il modulo può essere scaricato direttamente con il comando PIP:
|
1 |
pip install speedtest-cli |
o easy_install:
|
1 |
easy_install speedtest-cli |
E’ anche possibile accedere direttramente a github:
|
1 |
pip install git+https://github.com/sivel/speedtest-cli.git |
oppure
|
1 2 3 |
git clone https://github.com/sivel/speedtest-cli.git cd speedtest-cli python setup.py install |
Per coloro che usano Thonny, il modulo speedtest-cli è installabile da menù: Tools > Manage packets.
Note
L’obiettivo di questa applicazione non è quello di essere uno strumento affidabile per la segnalazione della latenza.
La latenza segnalata da questo strumento non deve essere considerata un valore indicativo della latenza in stile ICMP. Si tratta di un valore relativo utilizzato per determinare il server con la latenza più bassa su cui eseguire il test di velocità effettivo.
È possibile che questo strumento riporti risultati incoerenti con quelli di Speedtest.net. Ci sono diversi concetti da tenere a mente che potrebbero essere causa di incoerenza:
- Speedtest.net è passato all’utilizzo di test socket puri anziché di test basati su HTTP.
- Questa applicazione è scritta in Python.
- Diverse versioni di Python eseguiranno alcune parti del codice più velocemente di altre.
- La capacità e la velocità di CPU e memoria giocheranno un ruolo importante nell’incoerenza tra Speedtest.net e anche altre macchine sulla stessa rete.
Iscriviti ai nostri gruppi Telegram
Link utili
- Arduino UNO R3
- Elegoo UNO R3
- Arduino Starter Kit per principianti
- Elegoo Advanced Starter Kit
- Arduino Nano
- Raspberry PI 5
- Raspberry PI 400
- Raspberry PI Pico
- Programmiamo il Pico