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之类的细节
Oct 13 Python
Python搜索引擎实现原理和方法
Nov 27 Python
Python实现的简单读写csv文件操作示例
Jul 12 Python
Python查找文件中包含中文的行方法
Dec 19 Python
在Python中使用Neo4j的方法
Mar 14 Python
Python实现简单层次聚类算法以及可视化
Mar 18 Python
Django REST framework 分页的实现代码
Jun 19 Python
PowerBI和Python关于数据分析的对比
Jul 11 Python
Python3实现将一维数组按标准长度分隔为二维数组
Nov 29 Python
分享PyCharm最新激活码(真永久激活方法)不用每月找安装参数或最新激活码了
Dec 27 Python
python实战之用emoji表情生成文字
May 08 Python
Python 类,对象,数据分类,函数参数传递详解
Sep 25 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
三个类概括PHP的五种设计模式
2012/09/05 PHP
php实现多维数组中每个单元值(数字)翻倍的方法
2015/02/16 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
2020/03/02 PHP
PHP获取php,mysql,apche的版本信息及更多服务器信息
2021/03/09 PHP
CSS(js)限制页面显示的文本字符长度
2012/12/27 Javascript
uploadify在Firefox下丢失session问题的解决方法
2013/08/07 Javascript
javascript实现简单的二级联动
2015/03/19 Javascript
js实现仿Discuz文本框弹出层效果
2015/08/13 Javascript
js判断上传文件后缀名是否合法
2016/01/28 Javascript
jQuery中使用animate自定义动画的方法
2016/05/29 Javascript
RequireJs的使用详解
2017/02/19 Javascript
php简单数据库操作类的封装
2017/06/08 Javascript
vue实现表格数据的增删改查
2017/07/10 Javascript
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
解决Vue在Tomcat8下部署页面不加载的问题
2019/11/12 Javascript
解决vue安装less报错Failed to compile with 1 errors的问题
2020/10/22 Javascript
[49:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第二场 3月4日
2021/03/11 DOTA
python使用chardet判断字符串编码的方法
2015/03/13 Python
Python使用Flask框架获取当前查询参数的方法
2015/03/21 Python
python 异常处理总结
2016/10/18 Python
Jupyter安装nbextensions,启动提示没有nbextensions库
2020/04/23 Python
Python一句代码实现找出所有水仙花数的方法
2018/11/13 Python
Python批量生成特定尺寸图片及图画任意文字的实例
2019/01/30 Python
Python3利用print输出带颜色的彩色字体示例代码
2019/04/08 Python
利用python求积分的实例
2019/07/03 Python
python3实现带多张图片、附件的邮件发送
2019/08/10 Python
Python多进程编程multiprocessing代码实例
2020/03/12 Python
如何用python免费看美剧
2020/08/11 Python
深入了解Python装饰器的高级用法
2020/08/13 Python
Lulu & Georgia官方网站:购买地毯、家具、抱枕、壁纸、床上用品等
2018/03/19 全球购物
澳大利亚购买健身器材网站:Gym Direct
2019/12/19 全球购物
爱心捐款倡议书范文
2014/05/12 职场文书
李开复演讲稿
2014/05/24 职场文书
2014大四本科生自我鉴定总结
2014/10/04 职场文书
MySQL去除密码登录告警的方法
2022/04/20 MySQL
Python使用Opencv打开笔记本电脑摄像头报错解问题及解决
2022/06/21 Python