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的Tornado框架实现一个一对一聊天的程序
Apr 25 Python
Python 读取图片文件为矩阵和保存矩阵为图片的方法
Apr 27 Python
Python不使用int()函数把字符串转换为数字的方法
Jul 09 Python
Django配置celery(非djcelery)执行异步任务和定时任务
Jul 16 Python
Django中的ajax请求
Oct 19 Python
在双python下设置python3为默认的方法
Oct 31 Python
python射线法判断检测点是否位于区域外接矩形内
Jun 28 Python
详解python中自定义超时异常的几种方法
Jul 29 Python
Python 写入训练日志文件并控制台输出解析
Aug 13 Python
关于pytorch多GPU训练实例与性能对比分析
Aug 19 Python
python 实时调取摄像头的示例代码
Nov 25 Python
Python 如何将integer转化为罗马数(3999以内)
Jun 05 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 COOKIE及时生效的方法介绍
2014/02/14 PHP
php生成html文件方法总结
2014/12/01 PHP
php中define用法实例
2015/07/30 PHP
PHP判断字符串长度的两种方法很实用
2015/09/22 PHP
PHP简单计算两个时间差的方法示例
2017/06/20 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
2019/04/17 PHP
轻轻松松学习JavaScript
2007/02/25 Javascript
javascript firefox兼容ie的dom方法脚本
2008/05/18 Javascript
JS实现时间格式化的方式汇总
2013/10/16 Javascript
javascript操作html控件实例(javascript添加html)
2013/12/02 Javascript
Jquery.Form 异步提交表单的简单实例
2014/03/03 Javascript
javascript避免数字计算精度误差的方法详解
2014/03/05 Javascript
JS动画效果打开、关闭层的实现方法
2015/05/09 Javascript
全面解析Bootstrap表单使用方法(表单样式)
2015/11/24 Javascript
JavaScript+CSS实现的可折叠二级菜单实例
2016/02/29 Javascript
easy ui datagrid 从编辑框中获取值的方法
2017/02/22 Javascript
vue.js默认路由不加载linkActiveClass问题的解决方法
2017/12/11 Javascript
浅谈Vue2.0中v-for迭代语法的变化(key、index)
2018/03/06 Javascript
vue路由 遍历生成复数router-link的例子
2019/10/30 Javascript
[49:21]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第二场 11.05
2020/11/06 DOTA
python动态加载变量示例分享
2014/02/17 Python
pygame游戏之旅 添加icon和bgm音效的方法
2018/11/21 Python
Python正则表达式匹配和提取IP地址
2019/06/06 Python
python3.6根据m3u8下载mp4视频
2019/06/17 Python
python 的 scapy库,实现网卡收发包的例子
2019/07/23 Python
python将字典列表导出为Excel文件的方法
2019/09/02 Python
Django实现网页分页功能
2019/10/31 Python
Python 抓取数据存储到Redis中的操作
2020/07/16 Python
美国著名手表网站:Timepiece
2017/11/15 全球购物
Elemis美国官网:英国的第一豪华护肤品牌
2018/03/15 全球购物
UGG澳洲官网:UGG Australia
2018/04/26 全球购物
Foot Locker德国官方网站:美国运动服和鞋类零售商
2018/11/01 全球购物
Onzie官网:美国时尚瑜伽品牌
2019/08/21 全球购物
民族团结先进个人材料
2014/02/05 职场文书
出纳试用期自我鉴定范文
2014/09/16 职场文书
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang