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检测服务器是否正常
Feb 16 Python
使用Python的Tornado框架实现一个简单的WebQQ机器人
Apr 24 Python
用C++封装MySQL的API的教程
May 06 Python
Python中title()方法的使用简介
May 20 Python
python操作oracle的完整教程分享
Jan 30 Python
在scrapy中使用phantomJS实现异步爬取的方法
Dec 17 Python
Python异步操作MySQL示例【使用aiomysql】
May 16 Python
django使用admin站点上传图片的实例
Jul 28 Python
pycharm 安装JPype的教程
Aug 08 Python
在Python中使用MongoEngine操作数据库教程实例
Dec 03 Python
pytorch 实现tensor与numpy数组转换
Dec 27 Python
Django Admin后台模型列表页面如何添加自定义操作按钮
Nov 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
php中通过curl smtp发送邮件
2012/06/05 PHP
MySQL 日期时间函数常用总结
2012/06/12 PHP
PHP中加密解密函数与DES加密解密实例
2014/10/17 PHP
浅谈php7的重大新特性
2015/10/23 PHP
ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败)
2016/04/15 PHP
jQuery对象数据缓存Cache原理及jQuery.data方法区别介绍
2013/04/07 Javascript
jQuery获取(选中)单选,复选框,下拉框中的值
2014/02/21 Javascript
浅谈JavaScript实现面向对象中的类
2014/12/09 Javascript
jQuery实现行文字链接提示效果的方法
2015/03/10 Javascript
JS模拟简易滚动条效果代码(附demo源码)
2016/04/05 Javascript
JS表单验证的代码(常用)
2016/04/08 Javascript
jquery实现简单Tab切换菜单效果
2020/07/17 Javascript
jQuery属性选择器用法示例
2016/09/09 Javascript
vuejs 单文件组件.vue 文件的使用
2017/07/28 Javascript
vue实现长图垂直居上 vue实现短图垂直居中
2017/10/18 Javascript
JS实现二维数组横纵列转置的方法
2018/04/17 Javascript
javascript闭包的使用之按钮切换功能
2018/08/30 Javascript
Node.js之readline模块的使用详解
2019/03/25 Javascript
jQuery实现鼠标拖动图片功能
2021/03/04 jQuery
Python中dictionary items()系列函数的用法实例
2014/08/21 Python
python多线程threading.Lock锁用法实例
2014/11/01 Python
python logging日志模块的详解
2017/10/29 Python
简单了解什么是神经网络
2017/12/23 Python
Python图像处理之图片文字识别功能(OCR)
2019/07/30 Python
Python实现随机取一个矩阵数组的某几行
2019/11/26 Python
python不使用for计算两组、多个矩形两两间的iou方式
2020/01/18 Python
django实现后台显示媒体文件
2020/04/07 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
2020/06/17 Python
python利用 keyboard 库记录键盘事件
2020/10/16 Python
html5实现完美兼容各大浏览器的播放器
2014/12/26 HTML / CSS
经典促销广告词大全
2014/03/19 职场文书
环保倡议书50字
2014/05/15 职场文书
派出所所长先进事迹
2014/05/19 职场文书
党支部先进事迹材料
2014/12/24 职场文书
深入浅析Redis 集群伸缩原理
2021/05/15 Redis
Windows server 2012 R2 安装IIS服务器
2022/04/29 Servers