Skip to content

Commit 749f9d4

Browse files
Update Bandwidth_Monitor.py
1 parent 9758942 commit 749f9d4

File tree

1 file changed

+39
-54
lines changed

1 file changed

+39
-54
lines changed

Bandwidth_Monitor.py

Lines changed: 39 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,25 @@
1+
from tkinter import PhotoImage
12
import tkinter as tk
23
from threading import Thread
3-
from scapy.all import *
44
import os
55
import psutil
6-
from collections import defaultdict
76
from win32api import GetMonitorInfo, MonitorFromPoint
87

98
KB = float(1024)
109
MB = float(KB ** 2)
1110
GB = float(KB ** 3)
1211
TB = float(KB ** 4)
13-
all_macs = {iface.mac for iface in ifaces.values()}
1412

15-
WINDOW_SIZE = (240, 280)
16-
WINDOW_RESIZEABLE = True
13+
WINDOW_SIZE = (525, 30)
14+
WINDOW_RESIZEABLE = True
1715
REFRESH_DELAY = 1500
1816

1917
last_upload, last_download, upload_speed, down_speed = 0, 0, 0, 0
18+
2019
def size(B):
2120
B = float(B)
2221
if B < KB:
23-
return f"{B} Bytes"
22+
return f"{B:.2f} Bytes"
2423
elif KB <= B < MB:
2524
return f"{B/KB:.2f} KB"
2625
elif MB <= B < GB:
@@ -29,12 +28,26 @@ def size(B):
2928
return f"{B/GB:.2f} GB"
3029
elif TB <= B:
3130
return f"{B/TB:.2f} TB"
31+
prev_x = 0
32+
prev_y = 0
33+
34+
def start_drag(event):
35+
global prev_x, prev_y
36+
prev_x, prev_y = event.x_root, event.y_root
37+
38+
def on_drag(event):
39+
global prev_x, prev_y
40+
x, y = event.x_root - prev_x, event.y_root - prev_y
41+
window.geometry(f"+{window.winfo_x() + x}+{window.winfo_y() + y}")
42+
prev_x, prev_y = event.x_root, event.y_root
43+
3244
window = tk.Tk()
3345
window.title("Network Bandwidth Monitor")
3446
window.attributes("-topmost", True)
47+
window.overrideredirect(True)
3548
screen_width = window.winfo_screenwidth()
3649
screen_height = window.winfo_screenheight()
37-
50+
image = PhotoImage(file='drag.png')
3851
monitor_info = GetMonitorInfo(MonitorFromPoint((0,0)))
3952
work_area = monitor_info.get("Work")[3]
4053

@@ -44,41 +57,22 @@ def size(B):
4457
window.geometry(f"{WINDOW_SIZE[0]}x{WINDOW_SIZE[1]}+{window_x}+{window_y}")
4558
window.resizable(width=WINDOW_RESIZEABLE, height=WINDOW_RESIZEABLE)
4659

47-
label_total_upload_header = tk.Label(text="Total Upload:", font="Quicksand 12 bold")
48-
label_total_upload_header.pack()
49-
label_total_upload = tk.Label(text="Calculating...", font="Quicksand 12")
50-
label_total_upload.pack()
51-
52-
label_total_download_header = tk.Label(text="Total Download:", font="Quicksand 12 bold")
53-
label_total_download_header.pack()
54-
label_total_download = tk.Label(text="Calculating...", font="Quicksand 12")
55-
label_total_download.pack()
56-
57-
label_total_usage_header = tk.Label(text="Total Network Usage:", font="Quicksand 12 bold")
58-
label_total_usage_header.pack()
59-
label_total_usage = tk.Label(text="Calculating...\n", font="Quicksand 12")
60-
label_total_usage.pack()
61-
62-
label_upload_header = tk.Label(text="Upload Speed:", font="Quicksand 12 bold")
63-
label_upload_header.pack()
64-
label_upload = tk.Label(text="Calculating...", font="Quicksand 12")
65-
label_upload.pack()
66-
67-
label_download_header = tk.Label(text="Download Speed:", font="Quicksand 12 bold")
68-
label_download_header.pack()
69-
label_download = tk.Label(text="Calculating...", font="Quicksand 12")
70-
label_download.pack()
71-
72-
def process_packet(packet):
73-
pass
74-
75-
def start_packet_capture():
76-
while True:
77-
sniff(filter="tcp or udp and (portrange 1-65535)", prn=process_packet, count=1, store=0)
78-
79-
packet_capture_thread = Thread(target=start_packet_capture)
80-
packet_capture_thread.daemon = True
81-
packet_capture_thread.start()
60+
label_usage = tk.Label(text="Usage:",font="Quicksand 12 bold")
61+
label_usage.grid(row=1,column=1)
62+
usagedata = tk.Label(text="Calculating...", font="Quicksand 12",fg="gray")
63+
usagedata.grid(row=1,column=2)
64+
uplabel = tk.Label(text="| ⬆ Speed:", font="Quicksand 12 bold")
65+
uplabel.grid(row=1,column=3)
66+
updata = tk.Label(text="Calculating...", font="Quicksand 12", fg="#32CD30")
67+
updata.grid(row=1,column=4)
68+
downlabel = tk.Label(text="| ⬇ Speed:", font="Quicksand 12 bold")
69+
downlabel.grid(row=1,column=5)
70+
downdata = tk.Label(text="Calculating...", font="Quicksand 12", fg="#FF2511")
71+
downdata.grid(row=1,column=6)
72+
dragwin = tk.Label(window, image=image)
73+
dragwin.grid(row=1, column=0)
74+
dragwin.bind("<ButtonPress-1>", start_drag)
75+
dragwin.bind("<B1-Motion>", on_drag)
8276

8377
def update():
8478
global last_upload, last_download, upload_speed, down_speed
@@ -103,18 +97,9 @@ def update():
10397
last_upload = upload
10498
last_download = download
10599

106-
label_total_upload["text"] = f"{size(upload)}"
107-
label_total_download["text"] = f"{size(download)}"
108-
label_total_usage["text"] = f"{size(total)}\n"
109-
110-
label_upload["text"] = size(upload_speed)
111-
label_download["text"] = size(down_speed)
112-
113-
label_total_upload.pack()
114-
label_total_download.pack()
115-
label_total_usage.pack()
116-
label_upload.pack()
117-
label_download.pack()
100+
usagedata["text"] = f"{size(total)}"
101+
updata["text"] = f"{size(upload_speed)}"
102+
downdata["text"] = f"{size(down_speed)}"
118103

119104
window.after(REFRESH_DELAY, update)
120105

0 commit comments

Comments
 (0)