Skip to content

Commit 8996fff

Browse files
Merge pull request #2110 from smty2018/speed
Internet Speed Checker
2 parents a7d1e3e + dcee133 commit 8996fff

File tree

2 files changed

+72
-0
lines changed

2 files changed

+72
-0
lines changed

Internet Speed Checker/ReadMe.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
Description:
2+
This is Python-based application that measures and displays the download speed, upload speed, and ping of the internet connection.
3+
4+
Requirements:
5+
6+
pip install speedtest-cli
7+
8+
Screenshots:
9+
10+
![Screenshot 2023-07-06 195518](https://github.com/avinashkranjan/Amazing-Python-Scripts/assets/74114936/607a06e9-bf7b-4ced-a658-866e6c9c3dc5)
11+
12+
https://github.com/avinashkranjan/Amazing-Python-Scripts/assets/74114936/d8ad6cad-fd0c-4de7-b85d-843b7e3786fb
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
from tkinter import *
2+
from tkinter.ttk import Progressbar
3+
import speedtest
4+
import time
5+
6+
def animate_speed(speed_value, progress_bar, scaling_factor):
7+
max_value = speed_value * scaling_factor
8+
increment = max_value / 100
9+
for i in range(int(max_value) + 1):
10+
if i > 0.9 * max_value:
11+
break
12+
progress_bar['value'] = i
13+
progress_bar.update()
14+
time.sleep(0.02)
15+
16+
def check_speed():
17+
st = speedtest.Speedtest()
18+
download_speed = st.download() / 1000000
19+
upload_speed = st.upload() / 1000000
20+
ping = st.results.ping
21+
download_label.config(text=f"Download Speed: {download_speed:.2f} Mbps")
22+
upload_label.config(text=f"Upload Speed: {upload_speed:.2f} Mbps")
23+
ping_label.config(text=f"Ping: {ping:.2f} ms")
24+
animate_speed(download_speed, download_progress, 5)
25+
animate_speed(upload_speed, upload_progress, 3)
26+
animate_speed(ping, ping_progress, 2)
27+
28+
root = Tk()
29+
root.title("Internet Speed Checker")
30+
root.config(bg="#212121")
31+
root.geometry("500x400")
32+
root.resizable(False, False)
33+
34+
label1 = Label(root, text="Internet Speed Checker", font=("Helvetica", 30, "bold"), bg="#212121", fg="#ffffff")
35+
label1.pack()
36+
37+
download_label = Label(root, font=("Helvetica", 16), bg="#212121", fg="#ffffff")
38+
download_label.pack(pady=10)
39+
40+
download_progress = Progressbar(root, orient=HORIZONTAL, length=300, mode='determinate')
41+
download_progress.pack(pady=10)
42+
43+
upload_label = Label(root, font=("Helvetica", 16), bg="#212121", fg="#ffffff")
44+
upload_label.pack(pady=10)
45+
46+
upload_progress = Progressbar(root, orient=HORIZONTAL, length=300, mode='determinate')
47+
upload_progress.pack(pady=10)
48+
49+
ping_label = Label(root, font=("Helvetica", 16), bg="#212121", fg="#ffffff")
50+
ping_label.pack(pady=10)
51+
52+
ping_progress = Progressbar(root, orient=HORIZONTAL, length=300, mode='determinate')
53+
ping_progress.pack(pady=10)
54+
55+
check_speed()
56+
57+
button_refresh = Button(root, text="Refresh", font=("Helvetica", 14, "bold"), bg="#03a9f4", fg="#ffffff", command=check_speed)
58+
button_refresh.pack(pady=20)
59+
60+
root.mainloop()

0 commit comments

Comments
 (0)