python查看网速_python如何查看系统网络流量的信息

前言

流量信息可以直接在/proc/net/dev中进行查看,笔者实现的程序使用命令:

python net.py interface

其中interface为网卡名称,使用什么网卡,电脑有哪些网卡,可以使用

sudo ifconfig

进行查看。

Python实现的程序如下:

# coding:utf-8

import sys, time, os

'''

Inter-| Receive | Transmit

face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed

lo: 28169 364 0 0 0 0 0 0 28169 364 0 0 0 0 0 0

wlan1: 7432984 6018 0 0 0 0 0 0 681381 6115 0 0 0 0 0 0

vmnet1: 0 0 0 0 0 0 0 0 0 56 0 0 0 0 0 0

vmnet8: 0 0 0 0 0 0 0 0 0 55 0 0 0 0 0 0

eth0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

'''

_unit_=['B','KB','MB','GB','TB']

def get_net_data(interface):

for line in open('/proc/net/dev', 'r'):

if line.split(':')[0].find(interface)>=0:

return map(int, line.split(':')[1].split())

def convert_bytes_to_string(b):

cnt = 0

while b >= 1024.0:

b = float(b) / 1024.0

cnt += 1

return '%.2f%s'%(b,_unit_[cnt])

if __name__ == '__main__':

interface = sys.argv[1]

while True:

net_data = get_net_data(interface)

receive_data_bytes = net_data[0]

transmit_data_bytes = net_data[8]

os.system('clear')

print 'Interface:%s -> Receive Data: %s Transmit Data: %s'%(interface, convert_bytes_to_string(receive_data_bytes), convert_bytes_to_string(transmit_data_bytes))

time.sleep(1)

程序入口从if name=='main'处开始,首先通过参数获取interface,然后调用get_net_data()函数获取流量信息,接下来都是一些数据处理的过程。

总结

以上就是这篇文章的全部内容了,希望对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值