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实现简单的计时器功能函数
Mar 14 Python
在Python中用split()方法分割字符串的使用介绍
May 20 Python
简单谈谈Python中的元祖(Tuple)和字典(Dict)
Apr 21 Python
对python插入数据库和生成插入sql的示例讲解
Nov 14 Python
在python中利用GDAL对tif文件进行读写的方法
Nov 29 Python
在python中使用with打开多个文件的方法
Jan 07 Python
pyqt 多窗口之间的相互调用方法
Jun 19 Python
Django后台admin的使用详解
Jul 08 Python
Python 中如何实现参数化测试的方法示例
Dec 10 Python
Python datetime 格式化 明天,昨天实例
Mar 02 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
Jun 01 Python
10个python爬虫入门实例(小结)
Nov 01 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
解析htaccess伪静态的规则
2013/06/18 PHP
[原创]php正则删除img标签的方法示例
2017/05/27 PHP
Laravel中的chunk组块结果集处理与注意问题
2018/08/15 PHP
YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用示例
2020/03/18 PHP
js textarea自动增高并隐藏滚动条
2009/12/16 Javascript
jquery validation插件表单验证的一个例子
2010/03/03 Javascript
Jquery 一次处理多个ajax请求的代码
2011/09/02 Javascript
javascript设计模式 接口介绍
2012/07/24 Javascript
Javascript之this关键字深入解析
2013/11/12 Javascript
实例讲解JS中数组Array的操作方法
2014/05/09 Javascript
绑定回车enter事件代码
2014/05/18 Javascript
JQuery实现表格动态增加行并对新行添加事件
2014/07/30 Javascript
jquery插件推荐 jquery.cookie
2014/11/09 Javascript
基于AngularJS实现页面滚动到底自动加载数据的功能
2015/10/16 Javascript
JavaScript笔记之数据属性和存储器属性
2016/03/31 Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
2017/08/23 jQuery
Vue 组件参数校验与非props特性的方法
2019/02/12 Javascript
JavaScript解析JSON数据示例
2019/07/16 Javascript
微信小程序实现吸顶特效
2020/01/08 Javascript
Matplotlib 生成不同大小的subplots实例
2018/05/25 Python
python 不以科学计数法输出的方法
2018/07/16 Python
Python爬虫实现HTTP网络请求多种实现方式
2020/06/19 Python
python上selenium的弹框操作实现
2020/07/13 Python
django使用graphql的实例
2020/09/02 Python
45个非常奇妙的CSS3 特性应用示例
2012/01/01 HTML / CSS
让IE下支持Html5的placeholder属性的插件
2014/09/02 HTML / CSS
Stührling手表官方网站:男女高品质时尚手表的领先零售商
2021/01/07 全球购物
节能环保口号
2014/06/12 职场文书
软件工程毕业生自荐信
2014/07/04 职场文书
2014年度党员自我评议
2014/09/13 职场文书
2019求职信大礼包
2019/05/15 职场文书
Python爬虫框架之Scrapy中Spider的用法
2021/06/28 Python
Python实现归一化算法详情
2022/03/18 Python
python 闭包函数详细介绍
2022/04/19 Python
Java实现注册登录跳转
2022/06/16 Java/Android
微信小程序实现轮播图指示器
2022/06/25 Javascript