python如何查看系统网络流量的信息
前言
流量信息可以直接在/proc/net/dev中进行查看,笔者实现的程序使用命令:
pythonnet.pyinterface
其中interface为网卡名称,使用什么网卡,电脑有哪些网卡,可以使用
sudoifconfig
进行查看。
Python实现的程序如下:
#coding:utf-8 importsys,time,os ''' Inter-|Receive|Transmit face|bytespacketserrsdropfifoframecompressedmulticast|bytespacketserrsdropfifocollscarriercompressed lo:2816936400000028169364000000 wlan1:743298460180000006813816115000000 vmnet1:00000000056000000 vmnet8:00000000055000000 eth0:0000000000000000 ''' _unit_=['B','KB','MB','GB','TB'] defget_net_data(interface): forlineinopen('/proc/net/dev','r'): ifline.split(':')[0].find(interface)>=0: returnmap(int,line.split(':')[1].split()) defconvert_bytes_to_string(b): cnt=0 whileb>=1024.0: b=float(b)/1024.0 cnt+=1 return'%.2f%s'%(b,_unit_[cnt]) if__name__=='__main__': interface=sys.argv[1] whileTrue: net_data=get_net_data(interface) receive_data_bytes=net_data[0] transmit_data_bytes=net_data[8] os.system('clear') print'Interface:%s->ReceiveData:%sTransmitData:%s'%(interface,convert_bytes_to_string(receive_data_bytes),convert_bytes_to_string(transmit_data_bytes)) time.sleep(1)
程序入口从ifname=='main'处开始,首先通过参数获取interface,然后调用get_net_data()函数获取流量信息,接下来都是一些数据处理的过程。
总结
以上就是这篇文章的全部内容了,希望对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。