[Projekt] InternetSpeedTest

Projekt InternetSpeedTest jsem začal dělat jelikož jsem chtěl mít přehled o tom jak kvalitní služby mi dodává UPC Česká republika, s.r.o.. A vzhledem k tomu že mi doma běží 24/7 NAS od Synology na kterém se dá pohodlně provozovat Python 2.7 tak už zbývalo dát dohromady prográmek který bude kvalitu techto služeb měřit.
Celý program je postaven na službě SpeedTest.net a python modulu speedtest-cli.


Co bude potřeba

  1. Python 2.7
  2. nainstalovaný balíček speedtest-cli
    pip install speedtest-cli

Pak již zbývá stáhnout zdrojový kód programu a spustit.


Vývoj a běh programu

Vývoj probíhal na systému Debian 8.7. Ale jiná Linuxová distribuce by neměla být problémem. Aktuálně již pár měsíců je program spouštěn CRONem na systému Synology DSM 4.2 a výsledky si zaznamenávám do databáze.


Výsledky

Ukázka výstupu:

{'date': '16. 02. 2017, 19:00:41', 'download': 74.920000000000002, 'ping': 50.893999999999998, 'upload': 9.6199999999999992}

Source code

#!/usr/bin/env python

import os
import sys
from datetime import datetime

def main():
    try:
        speedTestResults = doSpeedTest()
        print speedTestResults

    except Exception as e:
        print 'Error: %s' % e
        sys.exit(1)

    sys.exit()

def doSpeedTest():
    result = os.popen("/usr/local/bin/speedtest-cli --simple").read()
    if 'Cannot' in result:
        return {'date': datetime.now(), 'upload': 0, 'download': 0, 'ping': 0}

    resultSet = result.split('\n')
    pingResult = resultSet[0]
    downloadResult = resultSet[1]
    uploadResult = resultSet[2]

    pingResult = float(pingResult.replace('Ping: ', '').replace(' ms', ''))
    downloadResult = float(downloadResult.replace('Download: ', '').replace(' Mbit/s', ''))
    uploadResult = float(uploadResult.replace('Upload: ', '').replace(' Mbit/s', ''))

    return {'date': datetime.now().strftime("%d. %m. %Y, %H:%M:%S"), 'upload': uploadResult, 'download': downloadResult, 'ping': pingResult}

if __name__ == '__main__':
    main();

GitHub

ODKAZ.


Poznámka

V aktuální verzi kterou na svém NASu využívám jsem dopsal metodu která vezme data a uloží je do příslušné tabulky v MySQL databázi.

Zdrojový kód je dostupný na GitHubu na tomto ODKAZu.

1 Response

  1. 19. 6. 2018

    […] instalace balíčku speedtest-cli z článku [Projekt] InternetSpeedTest. Další info o PIP naleznete zde ODKAZ. […]

Napsat komentář

%d blogerům se to líbí: