python监控网卡流量,python监控网卡,[Python]代码im


[Python]代码

import re,timedef get_net_info():    flow1 = open('/proc/net/dev')    lines = flow1.read()    flow1.close()    e =  re.compile('(eth.)')    r_re = re.compile('eth..(.*?\s)')    r_tr = re.compile(".*eth.*")    match_re = r_re.findall(lines)    match_tr = r_tr.findall(lines)    eth = e.findall(lines)    return (eth,lines,match_re,match_tr)def net_flow():    net_re_c={}    net_tr_c={}        net_tr_a=[]     for i in get_net_info()[3]:        net_tr_a.append(i.split()[8])    net_tr_a=dict(zip(get_net_info()[0],net_tr_a))    net_re_a = dict(zip(get_net_info()[0],get_net_info()[2]))    print "{eth0:(transmit,receive)"    while True:                        time.sleep(1)              net_re_b = dict(zip(get_net_info()[0],get_net_info()[2]))        net_tr_b = []         for i in get_net_info()[3]:            net_tr_b.append(i.split()[8])        net_tr_b=dict(zip(get_net_info()[0],net_tr_b))         for i in net_re_b:            net_re_c[i] = int((float(net_re_b[i])-float(net_re_a[i]))/1024)        for i in net_tr_b:              net_tr_c[i]=int((float(net_tr_b[i])-float(net_tr_a[i]))/1024)        net_re_a = net_re_b        net_tr_a = net_tr_b         net_flow={}        for a in net_re_c:                        net_flow[a]=(net_tr_c[a],net_re_c[a])        print net_flow                                                if __name__ == "__main__":    net_flow()

评论关闭