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之眼花缭乱的运算符
Sep 14 Python
wxPython框架类和面板类的使用实例
Sep 28 Python
零基础写python爬虫之爬虫编写全记录
Nov 06 Python
在Python中操作字典之setdefault()方法的使用
May 21 Python
Python简单计算文件MD5值的方法示例
Apr 11 Python
解决phantomjs截图失败,phantom.exit位置的问题
May 17 Python
python单例模式实例解析
Aug 28 Python
Python django框架输入汉字,数字,字符生成二维码实现详解
Sep 24 Python
python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例
Feb 28 Python
Python打印不合法的文件名
Jul 31 Python
Python自动登录QQ的实现示例
Aug 28 Python
Python接口自动化测试框架运行原理及流程
Nov 30 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
PHP6 中可能会出现的新特性预览
2014/04/04 PHP
php常用数学函数汇总
2014/11/21 PHP
PHP 实现从数据库导出到.csv文件方法
2017/07/06 PHP
ThinkPHP5 验证器的具体使用
2018/05/31 PHP
js浏览器本地存储store.js介绍及应用
2014/05/13 Javascript
jquery实现华丽的可折角广告代码
2015/09/02 Javascript
jQuery通过ajax请求php遍历json数组到table中的代码(推荐)
2016/06/12 Javascript
Bootstrap弹出框之自定义悬停框标题、内容和样式示例代码
2017/07/11 Javascript
bootstrap日期插件daterangepicker使用详解
2017/10/19 Javascript
vue.js绑定事件监听器示例【基于v-on事件绑定】
2018/07/07 Javascript
Vue的自定义组件不能使用click方法的解决
2020/07/28 Javascript
vue中的v-model原理,与组件自定义v-model详解
2020/08/04 Javascript
element-ui tree结构实现增删改自定义功能代码
2020/08/31 Javascript
javascript中layim之查找好友查找群组
2021/02/06 Javascript
Python中非常实用的一些功能和函数分享
2015/02/14 Python
Python解析xml中dom元素的方法
2015/03/12 Python
Python导入oracle数据的方法
2015/07/10 Python
Python 2与Python 3版本和编码的对比
2017/02/14 Python
Python基于贪心算法解决背包问题示例
2017/11/27 Python
Linux下安装python3.6和第三方库的教程详解
2018/11/09 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
2019/11/07 Python
Anaconda3中的Jupyter notebook添加目录插件的实现
2020/05/18 Python
基于Python词云分析政府工作报告关键词
2020/06/02 Python
CSS3 选择器 伪类选择器介绍
2012/01/21 HTML / CSS
详解Html5中video标签那些属性和方法
2019/07/01 HTML / CSS
吃透移动端 Html5 响应式布局
2019/12/16 HTML / CSS
巴西24小时在线药房:Droga Raia
2020/05/12 全球购物
幼儿教师师德演讲稿
2014/05/06 职场文书
2014年群众路线党员自我评议
2014/09/24 职场文书
小学趣味运动会加油稿
2014/09/25 职场文书
领导班子四风对照检查材料思想汇报
2014/09/26 职场文书
上班迟到检讨书300字
2014/10/18 职场文书
发布会邀请函
2015/01/31 职场文书
2016年植树节红领巾广播稿
2015/12/17 职场文书
python使用pygame创建精灵Sprite
2021/04/06 Python
mysqldump进行数据备份详解
2022/07/15 MySQL