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 27 Python
Python中的urllib模块使用详解
Jul 07 Python
在Python中通过threading模块定义和调用线程的方法
Jul 12 Python
详解supervisor使用教程
Nov 21 Python
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
Dec 11 Python
tensorflow实现逻辑回归模型
Sep 08 Python
Python 获取中文字拼音首个字母的方法
Nov 28 Python
Python实现带参数的用户验证功能装饰器示例
Dec 14 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
Dec 25 Python
python判断字符串以什么结尾的实例方法
Sep 18 Python
python如何实现DES加密
Sep 21 Python
python如何用matplotlib创建三维图表
Jan 26 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/04 冲泡冲煮
PHP处理Oracle的CLOB实例
2014/11/03 PHP
PHP使用stream_context_create()模拟POST/GET请求的方法
2016/04/02 PHP
Yii框架通过请求组件处理get,post请求的方法分析
2019/09/03 PHP
PHP的静态方法与普通方法用法实例分析
2019/09/26 PHP
javascript 模拟JQuery的Ready方法实现并出现的问题
2009/12/06 Javascript
javascript 命名规则 变量命名规则
2010/02/25 Javascript
转换json格式的日期为Javascript对象的函数
2010/07/13 Javascript
文本域中换行符的替换示例
2014/03/04 Javascript
jQuery使用ajaxSubmit()提交表单示例
2014/04/04 Javascript
使用jquery制作弹出框效果
2015/04/03 Javascript
jQuery中inArray方法注意事项分析
2016/01/25 Javascript
jquery实现点击弹出可放大居中及关闭的对话框(附demo源码下载)
2016/05/10 Javascript
Bootstrap页面布局基础知识全面解析
2016/06/13 Javascript
JQuery PHP图片在线裁剪实例
2020/07/27 Javascript
微信小程序数字滚动插件使用详解
2018/02/02 Javascript
layer.open 按钮的点击事件关闭方法
2018/08/17 Javascript
Angular刷新当前页面的实现方法
2018/11/21 Javascript
详解jenkins自动化部署vue
2019/05/14 Javascript
js 使用ajax设置和获取自定义header信息的方法小结
2020/03/12 Javascript
vuecli3.x中轻松4步带你使用tinymce的步骤
2020/06/25 Javascript
[00:32]2016完美“圣”典风云人物:Maybe宣传片
2016/12/05 DOTA
[01:35:13]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第一场 1月18日
2021/03/11 DOTA
Python实现短网址ShortUrl的Hash运算实例讲解
2015/08/10 Python
Python 递归函数详解及实例
2016/12/27 Python
用canvas做一个DVD待机动画的实现代码
2019/04/12 HTML / CSS
Sneaker Studio乌克兰:购买运动鞋
2018/03/26 全球购物
酒店工作职员求职简历的自我评价
2013/10/23 职场文书
《伯牙绝弦》教学反思
2014/03/02 职场文书
学校感恩教育活动总结
2014/07/07 职场文书
我的梦想演讲稿500字
2014/08/21 职场文书
大学运动会通讯稿
2015/07/18 职场文书
运动会跳远广播稿
2015/08/19 职场文书
为什么MySQL 删除表数据 磁盘空间还一直被占用
2021/10/16 MySQL
如何避免mysql启动时错误及sock文件作用分析
2022/01/22 MySQL
MyBatis XPathParser解析器使用范例详解
2022/07/15 Java/Android