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 相关文章推荐
pycharm 使用心得(八)如何调用另一文件中的函数
Jun 06 Python
修改Python的pyxmpp2中的主循环使其提高性能
Apr 24 Python
python实现连接mongodb的方法
May 08 Python
Python ftp上传文件
Feb 13 Python
Python爬虫获取整个站点中的所有外部链接代码示例
Dec 26 Python
Python实现PS图像调整颜色梯度效果示例
Jan 25 Python
一份python入门应该看的学习资料
Apr 11 Python
python3+opencv3识别图片中的物体并截取的方法
Dec 05 Python
python输入错误后删除的方法
Oct 12 Python
wxpython布局的实现方法
Nov 01 Python
改变 Python 中线程执行顺序的方法
Sep 24 Python
利用python实现后端写网页(flask框架)
Feb 28 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
PHP4实际应用经验篇(4)
2006/10/09 PHP
配置支持SSI
2006/11/25 PHP
elgg 获取文件图标地址的方法
2010/03/20 PHP
php分割合并两个字符串的函数实例
2015/06/19 PHP
PHP 二级子目录(后台目录)设置二级域名
2017/03/02 PHP
PHP+MySQL高并发加锁事务处理问题解决方法
2018/04/30 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
2018/05/11 PHP
纯js实现的论坛常用的运行代码的效果
2008/07/15 Javascript
微博@符号的用户名提示效果。(想@到谁?)
2010/11/05 Javascript
jquery ajax jsonp跨域调用实例代码
2013/12/11 Javascript
CSS中position属性之fixed实现div居中
2015/12/14 Javascript
jquery实用技巧之输入框提示语句
2016/07/28 Javascript
JS排序之选择排序详解
2017/04/08 Javascript
超级简易的JS计算器实例讲解(实现加减乘除)
2017/08/08 Javascript
如何选择适合你的JavaScript框架
2017/11/20 Javascript
Vue的双向数据绑定实现原理解析
2020/02/17 Javascript
[03:48]DOTA2完美大师赛主赛事第二日精彩集锦
2017/11/24 DOTA
[01:36:17]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第一场 1月31日
2021/03/11 DOTA
python类和函数中使用静态变量的方法
2015/05/09 Python
尝试用最短的Python代码来实现服务器和代理服务器
2016/06/23 Python
python编程培训 python培训靠谱吗
2018/01/17 Python
Python数据持久化shelve模块用法分析
2018/06/29 Python
python读取Excel实例详解
2018/08/17 Python
解决Python3 被PHP程序调用执行返回乱码的问题
2019/02/16 Python
Python3实现的简单工资管理系统示例
2019/03/12 Python
关于Python3 lambda函数的深入浅出
2019/11/27 Python
python与c语言的语法有哪些不一样的
2020/09/13 Python
python request 模块详细介绍
2020/11/10 Python
SQL面试题
2013/12/09 面试题
信用社实习人员自我鉴定
2013/09/20 职场文书
市场营销战略计划书
2014/05/06 职场文书
交通文明倡议书
2014/05/16 职场文书
素质教育标语
2014/06/27 职场文书
警察群众路线整改措施
2014/09/26 职场文书
体育教师个人工作总结
2015/02/09 职场文书
Python selenium的这三种等待方式一定要会!
2021/06/10 Python