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 yield 小结和实例
Apr 25 Python
Python深入学习之内存管理
Aug 31 Python
Python判断字符串与大小写转换
Jun 08 Python
通过Python实现自动填写调查问卷
Sep 06 Python
浅谈Python中带_的变量或函数命名
Dec 04 Python
Python获取当前函数名称方法实例分享
Jan 18 Python
python opencv3实现人脸识别(windows)
May 25 Python
python文件拆分与重组实例
Dec 10 Python
Python获取数据库数据并保存在excel表格中的方法
Jun 12 Python
python 实现二维字典的键值合并等函数
Dec 06 Python
python集成开发环境配置(pycharm)
Feb 14 Python
Python3 mmap内存映射文件示例解析
Mar 23 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
法压式咖啡之制作法
2021/03/03 冲泡冲煮
php小偷相关截取函数备忘
2010/11/28 PHP
PHP安全性漫谈
2012/06/28 PHP
Laravel中使用自己编写类库的3种方法
2015/02/10 PHP
PHP生成json和xml类型接口数据格式
2015/05/17 PHP
微信公众号开发之通过接口删除菜单
2017/02/20 PHP
PHP创建单例后台进程的方法示例
2017/05/23 PHP
Yii2选项卡的简单使用
2017/05/26 PHP
实例讲解PHP表单
2020/06/10 PHP
javascript[js]获取url参数的代码
2007/10/17 Javascript
JavaScript中“基本类型”之争小结
2013/01/03 Javascript
实例说明为什么不要行内使用javascript
2014/04/18 Javascript
jQuery Validate插件实现表单强大的验证功能
2015/12/18 Javascript
高效利用Angular中内置服务$http、$location等
2016/03/22 Javascript
Bootstrap的Refresh Icon也spin起来
2016/07/13 Javascript
picLazyLoad 实现图片延时加载(包含背景图片)
2016/07/21 Javascript
微信小程序 swiper制作tab切换实现附源码
2017/01/21 Javascript
jQuery插件FusionCharts实现的MSBar3D图效果示例【附demo源码】
2017/03/23 jQuery
Vue通过input筛选数据
2020/10/26 Javascript
vue实现前进刷新后退不刷新效果
2018/01/26 Javascript
如何利用ES6进行Promise封装总结
2019/02/11 Javascript
JS回调函数简单易懂的入门实例分析
2019/09/29 Javascript
vue开发中遇到的问题总结
2020/04/07 Javascript
在react项目中使用antd的form组件,动态设置input框的值
2020/10/24 Javascript
selenium python 实现基本自动化测试的示例代码
2019/02/25 Python
解决pycharm运行程序出现卡住scanning files to index索引的问题
2019/06/27 Python
python爬虫 execjs安装配置及使用
2019/07/30 Python
L*SPACE官网:比基尼、泳装和度假服装
2019/03/18 全球购物
波兰家居饰品和厨房配件网上商店:Maleomi
2020/12/15 全球购物
What is EJB
2016/07/22 面试题
酒店办公室文员岗位职责
2013/12/18 职场文书
计算机科学技术自荐信
2014/06/12 职场文书
护理培训心得体会
2016/01/22 职场文书
详解JVM系列之内存模型
2021/06/10 Javascript
Java 实现限流器处理Rest接口请求详解流程
2021/11/02 Java/Android
关于vue-router-link选择样式设置
2022/04/30 Vue.js