Memantau Kecepatan Jaringan Real-time dengan Python & Psutil
Potongan kode Python ini menunjukkan cara menggunakan library psutil untuk menghitung kecepatan unduh dan unggah jaringan secara real-time. Fungsi ini bekerja dengan mengukur jumlah total byte yang diterima dan dikirim oleh interface jaringan dalam interval waktu tertentu, lalu mengubahnya menjadi Megabit per detik (Mbps).
1import psutil
2import time
3
4def get_network_speed(interval=1):
5 """
6 Menghitung kecepatan jaringan (download & upload) dalam Mbps.
7 Fungsi ini memblokir eksekusi selama durasi 'interval'.
8 """
9 # Ambil statistik awal dari semua interface jaringan
10 start_counters = psutil.net_io_counters()
11
12 time.sleep(interval)
13
14 # Ambil statistik akhir setelah interval berlalu
15 end_counters = psutil.net_io_counters()
16
17 # Hitung selisih byte yang dikirim dan diterima
18 bytes_sent = end_counters.bytes_sent - start_counters.bytes_sent
19 bytes_recv = end_counters.bytes_recv - start_counters.bytes_recv
20
21 # Konversi byte per interval ke Megabit per detik (Mbps)
22 # 1 byte = 8 bit. 1 Megabit = 1,024 * 1,024 bit.
23 upload_mbps = round((bytes_sent * 8) / (interval * 1024 * 1024), 2)
24 download_mbps = round((bytes_recv * 8) / (interval * 1024 * 1024), 2)
25
26 return {"download": download_mbps, "upload": upload_mbps}
27
28# Contoh penggunaan:
29if __name__ == "__main__":
30 print("Memantau kecepatan jaringan... Tekan CTRL+C untuk berhenti.")
31 try:
32 while True:
33 speed = get_network_speed(interval=2)
34 print(f"Download: {speed['download']:.2f} Mbps, Upload: {speed['upload']:.2f} Mbps")
35 except KeyboardInterrupt:
36 print("\nProgram dihentikan.")