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中的URLError异常的方法
Apr 30 Python
python 获取当天凌晨零点的时间戳方法
May 22 Python
使用Python实现微信提醒备忘录功能
Dec 04 Python
python利用小波分析进行特征提取的实例
Jan 09 Python
Python中的random.uniform()函数教程与实例解析
Mar 02 Python
解决pycharm remote deployment 配置的问题
Jun 27 Python
python多任务之协程的使用详解
Aug 26 Python
tensorflow 变长序列存储实例
Jan 20 Python
logging level级别介绍
Feb 21 Python
python 抓取知乎指定回答下视频的方法
Jul 09 Python
python3 sqlite3限制条件查询的操作
Apr 07 Python
python+opencv实现视频抽帧示例代码
Jun 11 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
探讨方法的重写(覆载)详解
2013/06/08 PHP
PHP中array_merge和array相加的区别分析
2013/06/17 PHP
PHP语法自动检查的Vim插件
2014/08/11 PHP
laravel利用中间件防止未登录用户直接访问后台的方法
2019/09/30 PHP
帮助避免错误的Javascript陷阱清单
2009/05/31 Javascript
斜45度寻路实现函数
2009/08/20 Javascript
jcarousellite.js 基于Jquery的图片无缝滚动插件
2010/12/30 Javascript
Javascript基础 函数“重载” 详细介绍
2013/10/25 Javascript
js中通过父级进行查找定位元素
2014/06/15 Javascript
jQuery中trigger()方法用法实例
2015/01/19 Javascript
jquery+php实现滚动的数字特效
2015/11/29 Javascript
使用javascript插入样式
2016/03/14 Javascript
jQuery+PHP+Mysql实现抽奖程序
2020/04/12 jQuery
React如何将组件渲染到指定DOM节点详解
2017/09/08 Javascript
详解React之key的使用和实践
2018/09/29 Javascript
使用Vue实现移动端左滑删除效果附源码
2019/05/16 Javascript
JavaScript函数式编程(Functional Programming)声明式与命令式实例分析
2019/05/21 Javascript
小程序瀑布流组件实现翻页与图片懒加载
2020/05/19 Javascript
使用nodejs实现JSON文件自动转Excel的工具(推荐)
2020/06/24 NodeJs
vue v-for出来的列表,点击某个li使得当前被点击的li字体变红操作
2020/07/17 Javascript
JS代码简洁方式之函数方法详解
2020/07/28 Javascript
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
2021/02/23 Vue.js
Python发送以整个文件夹的内容为附件的邮件的教程
2015/05/06 Python
初步剖析C语言编程中的结构体
2016/01/16 Python
Ubuntu安装Jupyter Notebook教程
2017/10/18 Python
浅谈python 里面的单下划线与双下划线的区别
2017/12/01 Python
Python常见数据结构之栈与队列用法示例
2019/01/14 Python
Python二进制文件读取并转换为浮点数详解
2019/06/25 Python
python tornado修改log输出方式
2019/11/18 Python
OpenCV 之按位运算举例解析
2020/06/19 Python
用Python开发app后端有优势吗
2020/06/29 Python
美国五金商店:Ace Hardware
2018/03/27 全球购物
Jimmy Choo美国官网:周仰杰鞋子品牌
2018/06/08 全球购物
马来西亚排名第一的宠物用品店:Pets Wonderland
2020/04/16 全球购物
劳动实践课感言
2014/02/01 职场文书
个人批评与自我批评发言稿
2014/09/28 职场文书