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()函数获取流量信息,接下来都是一些数据处理的过程。
总结
以上就是这篇文章的全部内容了,希望对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。