您的位置:首页 > 编程语言 > Python开发

网卡流量监控脚本 ( Python )

2016-06-30 16:20 621 查看
#!/usr/bin/env python
# coding: utf-8
# author: Xiao Guaishou

try:
import psutil
except ImportError:
print('Error: psutil module not found!')
exit()

def get_key():

key_info = psutil.net_io_counters(pernic=True).keys()

recv = {}
sent = {}

for key in key_info:
recv.setdefault(key, psutil.net_io_counters(pernic=True).get(key).bytes_recv)
sent.setdefault(key, psutil.net_io_counters(pernic=True).get(key).bytes_sent)

return key_info, recv, sent

def get_rate(func):

import time

key_info, old_recv, old_sent = func()

time.sleep(1)

key_info, now_recv, now_sent = func()

net_in = {}
net_out = {}

for key in key_info:
net_in.setdefault(key, (now_recv.get(key) - old_recv.get(key)) / 1024)
net_out.setdefault(key, (now_sent.get(key) - old_sent.get(key)) / 1024)

return key_info, net_in, net_out

while 1:
try:
key_info, net_in, net_out = get_rate(get_key)

for key in key_info:
print('%s\nInput:\t %-5sKB/s\nOutput:\t %-5sKB/s\n' % (key, net_in.get(key), net_out.get(key)))
except KeyboardInterrupt:
exit()

# End
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: