Python 网络带宽监控器
我正在用Python开发一个程序,其中有一个功能可以告诉用户自从程序打开以来他们使用了多少带宽(不仅仅是程序内部的使用,还包括在程序打开期间的正常网页浏览)。这个输出需要在GTK界面上显示。
请问有没有现成的解决方案?如果没有,你能给我一些建议吗?看起来我需要修改一个现有的代理脚本,比如pythonproxy,但我不太明白该怎么用。
谢谢!
5 个回答
6
import time
def get_bytes(t, iface='wlan0'):
with open('/sys/class/net/' + iface + '/statistics/' + t + '_bytes', 'r') as f:
data = f.read();
return int(data)
while(True):
tx1 = get_bytes('tx')
rx1 = get_bytes('rx')
time.sleep(1)
tx2 = get_bytes('tx')
rx2 = get_bytes('rx')
tx_speed = round((tx2 - tx1)/1000000.0, 4)
rx_speed = round((rx2 - rx1)/1000000.0, 4)
print("TX: %fMbps RX: %fMbps") % (tx_speed, rx_speed)
应该可以工作
17
为了完成我的任务,我写了一个非常简单的解决方案,使用了psutil这个库:
import time
import psutil
def main():
old_value = 0
while True:
new_value = psutil.net_io_counters().bytes_sent + psutil.net_io_counters().bytes_recv
if old_value:
send_stat(new_value - old_value)
old_value = new_value
time.sleep(1)
def convert_to_gbit(value):
return value/1024./1024./1024.*8
def send_stat(value):
print ("%0.3f" % convert_to_gbit(value))
main()