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 Web框架Flask信号机制(signals)介绍
Jan 01 Python
Python检测生僻字的实现方法
Oct 23 Python
python日志记录模块实例及改进
Feb 12 Python
python利用高阶函数实现剪枝函数
Mar 20 Python
numpy.where() 用法详解
May 27 Python
详解Django定时任务模块设计与实践
Jul 24 Python
pytorch 归一化与反归一化实例
Dec 31 Python
TensorFlow实现checkpoint文件转换为pb文件
Feb 10 Python
python生成大写32位uuid代码
Mar 03 Python
浅析python 字典嵌套
Sep 29 Python
python3 字符串str和bytes相互转换
Mar 23 Python
基于PyQt5制作一个群发邮件工具
Apr 08 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
给WordPress的编辑后台添加提示框的代码实例分享
2015/12/25 PHP
豆瓣网的jquery代码实例
2008/06/15 Javascript
JS 自动安装exe程序
2008/11/30 Javascript
jquery 跨域访问问题解决方法(笔记)
2011/06/08 Javascript
深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP
2012/01/15 Javascript
通过jquery还原含有rowspan、colspan的table的实现方法
2012/02/10 Javascript
深入理解javascript学习笔记(一) 编写高质量代码
2012/08/09 Javascript
js 如何实现对数据库的增删改查
2012/11/23 Javascript
使用JavaScript 实现对象 匀速/变速运动的方法
2013/05/08 Javascript
根据身份证号自动输出相关信息(籍贯,出身日期,性别)
2013/11/15 Javascript
单击某一段文字改写文本颜色
2014/06/06 Javascript
JavaScript程序中的流程控制语句用法总结
2016/05/23 Javascript
Angularjs实现带查找筛选功能的select下拉框示例代码
2016/10/04 Javascript
JavaScript面向对象分层思维全面解析
2016/11/22 Javascript
VUE饿了么树形控件添加增删改功能的示例代码
2017/10/17 Javascript
SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法
2018/01/09 Javascript
使用vue如何构建一个自动建站项目
2018/02/05 Javascript
vue组件传递对象中实现单向绑定的示例
2018/02/28 Javascript
express默认日志组件morgan的方法
2018/04/05 Javascript
React中使用UMEditor的方法示例
2019/12/27 Javascript
[01:19:54]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#1Alliance VS EHOME
2016/03/03 DOTA
Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】
2017/07/24 Python
R语言 vs Python对比:数据分析哪家强?
2017/11/17 Python
pandas如何处理缺失值
2019/07/31 Python
python Pillow图像处理方法汇总
2019/10/16 Python
python框架flask表单实现详解
2019/11/04 Python
python修改文件内容的3种方法详解
2019/11/15 Python
健身场所或家用健身设备:Life Fitness
2017/11/01 全球购物
计算机专业应届毕业生自荐信
2013/09/26 职场文书
QA工程师岗位职责
2013/11/20 职场文书
自我鉴定怎么写
2014/01/12 职场文书
2014年文学毕业生自我鉴定
2014/04/23 职场文书
效能监察建议书
2014/05/19 职场文书
党的群众路线对照检查材料(个人)
2014/09/24 职场文书
mysql查询结果实现多列拼接查询
2022/04/03 MySQL
Linux在两个服务器直接传文件的操作方法
2022/08/05 Servers