Skip to content

A simple speedtest (Download speed/ping check) tool in Python

Posted in VIDEOS

Hello everyone and welcome back! 🙂

Today we are making a really simple beginner friendly script to check download speed and ping (in ms)

So lets get started:

import datetime
import time
import socket
import subprocess
import requests


def speedtest():
    print("Starting the 5MB download speed test...")

    start = time.time()


    dwld_url = "http://ipv4.download.thinkbroadband.com/5MB.zip"
    get_dwld = requests.get(dwld_url)
        

    end = time.time()
    diff = end - start
    diff2 = diff
    #diff = round(diff, 3)
    divide = diff / 5
    divide = round(divide,2)
    #its how many seconds it took for a megabyte (10/5=2)
    #not how many megabytes per second
    divide = 1 / divide
    divide = round(divide,2)
    print("Dwld: ",divide,"MBps")
    megabits = divide * 8
    megabits = round(megabits,1)
    print("Speed:",megabits,"Mbps")
    diff2 = round(diff2,3)
    print("\nIn {} seconds.".format(diff2))

    #print("In ",divide, " seconds you downloaded a megabyte")
    #print("Done in ",diff, " seconds")


def ping():
    print("Pinging google DNS...")
    #rep = os.system('ping -n 1 {} | findstr "ms"'.format(server_ip))
    proc = subprocess.Popen('ping -n 1 8.8.8.8 | findstr "ms"', stdout=subprocess.PIPE, shell=True)
    (out, err) = proc.communicate()
    out = out.decode('utf-8')
    if "Average" in out:
        #
        out = out[-20:]
        out = out.replace("Average =","")
        out = out.replace("ms","")
        out = out.replace(",","")
        out = out.replace(" ","")
        out = out.replace("\n","")
        print("Your Ping:",out,"ms")



choice = str(input("1.)Ping(ms)\n2.)Download speed\n3.)Both\n>"))
if choice == "1":
    ping()
elif choice == "2":
    speedtest()
elif choice == "3":
    print("\n[Ping]...\n")
    ping()
    print("\n[Speed]...\n")
    speedtest()
else:
    print("no")





There we go ! Thank you so much for visiting and have a nice day.