Opgelost: controleer de internetsnelheid met behulp van python

Laatste update: 09/11/2023

Het grootste probleem met het controleren van de internetsnelheid met behulp van Python is dat er geen gestandaardiseerde manier is om dit te doen. Verschillende programma's geven u verschillende resultaten, en zelfs als één programma zegt dat uw verbinding snel is, is dat in werkelijkheid misschien niet het geval.

import speedtest import os import time def test_speed(): s = speedtest.Speedtest() s.get_best_server() s.download() s.upload() return s.results.dict()['download'] / 8000000,  s.results.dict()['upload'] / 8000000,  s.results.dict()['ping'] def main(): while True: download, upload, ping = test_speed() print('Download: {:0.2f} MbpstUpload: {:0.2f} MbpstPing: {} ms'.format(download, upload, ping)) time.sleep(5) if __name__ == '__main__': main()

De eerste drie regels importeren de modules speedtest, os en time.

De volgende regel definieert een functie met de naam test_speed(). Deze functie gebruikt de speedtest-module om de snelheid van de internetverbinding te testen en retourneert de resultaten.

De volgende regel definieert een functie met de naam main(). Deze functie roept de functie test_speed() aan en drukt de resultaten af. Het slaapt dan 5 seconden voordat het wordt herhaald.

Ten slotte, als dit bestand wordt uitgevoerd als een script (in plaats van te worden geïmporteerd als een module), wordt de functie main() aangeroepen.

Wat is internetsnelheid

De snelheid van internet in Python kan worden gemeten in bytes per seconde.

Internet snelheidsdiensten

Er zijn een paar verschillende manieren om de snelheid van een internetverbinding in Python te meten. De eenvoudigste manier is om de ingebouwde functie tijd te gebruiken. time() print de huidige tijd in seconden.

De tweede manier om de snelheid van een internetverbinding te meten, is door de opdracht netstat te gebruiken. netstat toont alle actieve netwerkverbindingen en hun status. Gebruik de optie -i om informatie te krijgen over de snelheid van een specifieke netwerkverbinding:

$netstat -i | grep “:80” Actieve internetverbindingen (servers en clients) Proto Recv-Q Send-Q Lokaal adres Buitenlands adres Staat PID/Programmanaam tcp 0 0 127.0.0.1:80 0.0.0.0:* LISTEN 548/sshd tcp6 0 0 : ::80 :::* LUISTEREN 672/docker tcp6 0 1 ::1:80 :::* LUISTEREN 672/docker

Gerelateerde berichten: