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


Posted in Python onSeptember 12, 2016

前言

流量信息可以直接在/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()函数获取流量信息,接下来都是一些数据处理的过程。

总结

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

Python 相关文章推荐
python操作xml文件示例
Apr 07 Python
Python删除空文件和空文件夹的方法
Jul 14 Python
python文件特定行插入和替换实例详解
Jul 12 Python
numpy.linspace函数具体使用详解
May 27 Python
python实现socket+threading处理多连接的方法
Jul 23 Python
python中列表的切片与修改知识点总结
Jul 23 Python
浅析Python数字类型和字符串类型的内置方法
Dec 22 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
Jan 20 Python
Python实现捕获异常发生的文件和具体行数
Apr 25 Python
新手常见Python错误及异常解决处理方案
Jun 18 Python
详解Python生成器和基于生成器的协程
Jun 03 Python
Django路由层如何获取正确的url
Jul 15 Python
Python爬取三国演义的实现方法
Sep 12 #Python
python 读写、创建 文件的方法(必看)
Sep 12 #Python
Python读写Json涉及到中文的处理方法
Sep 12 #Python
详细介绍Python的鸭子类型
Sep 12 #Python
Python 读写文件和file对象的方法(推荐)
Sep 12 #Python
使用Python进行二进制文件读写的简单方法(推荐)
Sep 12 #Python
浅谈python对象数据的读写权限
Sep 12 #Python
You might like
DC《小丑》11项提名领跑奥斯卡 Netflix成第92届奥斯卡提名最大赢家
2020/04/09 欧美动漫
仿Aspnetpager的一个PHP分页类代码 附源码下载
2012/10/08 PHP
thinkphp中多表查询中防止数据重复的sql语句(必看)
2016/09/22 PHP
php封装的单文件(图片)上传类完整实例
2016/10/18 PHP
php日志函数error_log用法实例分析
2019/09/23 PHP
ThinkPhP+Apache+PHPstorm整合框架流程图解
2020/11/23 PHP
jquery.cvtooltip.js 基于jquery的气泡提示插件
2010/11/19 Javascript
关于textarea提交的内容无法换行的解决办法
2013/04/09 Javascript
Javascript 命名空间模式
2013/11/01 Javascript
js函数在frame中的相互调用详解
2014/03/03 Javascript
Area 区域实现post提交数据的js写法
2014/04/22 Javascript
jquery中post方法用法实例
2014/10/21 Javascript
javascript实现自动输出文本(打字特效)
2015/08/27 Javascript
js字符串引用的两种方式(必看)
2016/09/18 Javascript
原生js实现旋转木马轮播图效果
2017/02/27 Javascript
对angularJs中$sce服务安全显示html文本的实例
2018/09/30 Javascript
微信小程序实现分享朋友圈的图片功能示例
2019/01/18 Javascript
微信JSSDK实现打开摄像头拍照再将相片保存到服务器
2019/11/15 Javascript
python获取list下标及其值的简单方法
2016/09/12 Python
django轻松使用富文本编辑器CKEditor的方法
2017/03/30 Python
Python随机生成手机号、数字的方法详解
2017/07/21 Python
Windows下python3.7安装教程
2018/07/31 Python
对python中Json与object转化的方法详解
2018/12/31 Python
Python实现定时执行任务的三种方式简单示例
2019/03/30 Python
python3 动态模块导入与全局变量使用实例
2019/12/22 Python
波兰电子产品购物网站:Vobis
2019/05/26 全球购物
利达恒信公司.NET笔试题面试题
2016/03/05 面试题
配件采购员岗位职责
2013/12/03 职场文书
鼓舞士气的口号
2014/06/16 职场文书
安全保证书格式
2015/02/28 职场文书
2015年毕业生个人自荐书
2015/03/24 职场文书
传单、海报早OUT了,另类传单营销方案送给你!
2019/07/15 职场文书
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
2021/06/15 Javascript
python识别围棋定位棋盘位置
2021/07/26 Python
JVM的类加载器和双亲委派模式你了解吗
2022/03/13 Java/Android
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
2022/08/05 Vue.js