当前位置:  编程技术>python

linux系统使用python监测网络接口获取网络的输入输出

    来源: 互联网  发布时间:2014-09-04

    本文导语:  net.py 获取网络接口的输入和输出 代码如下:#!/usr/bin/env Pythonimport timeimport sys if len(sys.argv) > 1: INTERFACE = sys.argv[1]else: INTERFACE = 'eth0'STATS = []print 'Interface:',INTERFACE def rx(): ifstat = open('/proc/net/dev').readlines() for interface in  ifstat:  ...

net.py 获取网络接口的输入和输出

代码如下:

#!/usr/bin/env Python
import time
import sys

if len(sys.argv) > 1:
 INTERFACE = sys.argv[1]
else:
 INTERFACE = 'eth0'
STATS = []
print 'Interface:',INTERFACE

def rx():
 ifstat = open('/proc/net/dev').readlines()
 for interface in  ifstat:
  if INTERFACE in interface:
   stat = float(interface.split()[1])
   STATS[0:] = [stat]

def tx():
 ifstat = open('/proc/net/dev').readlines()
 for interface in  ifstat:
  if INTERFACE in interface:
   stat = float(interface.split()[9])
   STATS[1:] = [stat]

print 'In   Out'
rx()
tx()

while True:
 time.sleep(1)
 rxstat_o = list(STATS)
 rx()
 tx()
 RX = float(STATS[0])
 RX_O = rxstat_o[0]
 TX = float(STATS[1])
 TX_O = rxstat_o[1]
 RX_RATE = round((RX - RX_O)/1024/1024,3)
 TX_RATE = round((TX - TX_O)/1024/1024,3)
 print RX_RATE ,'MB  ',TX_RATE ,'MB'

简单说明一下清单 4:清单 4 读取/proc/net/dev 中的信息,Python 中文件操作可以通过 open 函数,这的确很像 C 语言中的 fopen。通过 open 函数获取一个 file object,然后调用 read(),write()等方法对文件进行读写操作。另外 Python 将文本文件的内容读入可以操作的字符串变量非常容易。文件对象提供了三个“读”方法: read()、readline() 和 readlines()。每种方法可以接受一个变量以限制每次读取的数据量,但它们通常不使用变量。 .read() 每次读取整个文件,它通常用于将文件内容放到一个字符串变量中。然而 .read() 生成文件内容最直接的字符串表示,但对于连续的面向行的处理,它却是不必要的,并且如果文件大于可用内存,则不可能实现这种处理。.readline() 和 .readlines() 之间的差异是后者一次读取整个文件,象 .read() 一样。.readlines() 自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for ... in ... 结构进行处理。另一方面,.readline() 每次只读取一行,通常比 .readlines() 慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用 .readline()。最后清单 4 打印出网络接口的输入和输出情况。
可以使用 Python 命令运行脚本 net.py 结果见图 4


    
 
 

您可能感兴趣的文章:

  • 请问unix网络编程和linux网络有什么区别
  • linux不用命令方式读文件获取网络流量,如何使用C函数调用获取网络流量信息?
  • 《UNIX网络编程》这本书适合linux下的网络编程吗?
  • 【linux视频教程整套10个视频】linux网络及安全管理
  • linux下双网卡分别连不同的网络,如何设定对于某个目标ip,走特定的网络
  • [疑问] [linux网络连接]Linuxmint网络连接
  • linux内核中网络模块的学习
  • 我的专业是网络技术,对TCP/IP有一定的了解但不精,想要学习linux下的网络编程,请大家推荐学习方法和优秀的书籍
  • 学习linux网络驱动开发有哪些比较好的书籍?
  • Unix/Linux网络编程怎样来做一个项目?
  • flyingcrean,来讲一下Linux网络分析。
  • 那里有linux c 函数库和linux 网络编程的书下载??
  • 求解linux的网络设置
  • 新手请教,linux网络编程。
  • Linux C++ 网络库 Muduo
  • linux环境进行网络编程的教材
  • Red Hat9 linux 访问网络非常慢
  • 有关配置红旗LINUX网络的问题,
  • xp host + vmware linux 的网络连接设置
  • linux 重启与重启网络的区别
  • 【请教】Linux下用select()监测socket,是不是通常不去监测可写状态的?
  • 请问在linux的环境下如何监测某项程序是否在运行+如何监测网络可用?谢谢~
  • 在linux下如何监测一个软件
  • linux下怎么监测接口的流量?
  • 毕设题《linux下IPv6的流量监测控制系统》 求基础 求思路 求意见
  • 求Linux监测程序并自动重起脚本
  • 请问linux下有没有类似于windows perfmon用来监测系统性能的东西?
  • Unix/linux下如何监测共享内存的使用情况
  • linux系统使用python监测系统负载脚本分享
  • Linux C编程实现串口通信,监测对方设备信息!
  • 在LINUX下如何监测运行时间很短的程序的内存使用量
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux下 多线程打印输出看不到,但gdb下就能看到输出,是什么原因呢?
  • java程序在linux系统下中文输出乱码,输出一个汉字对应一个问号
  • linux开机运行的程序无法输出
  • Linux 终端输出的问题
  • linux下子进程输出重定向的问题
  • 如何把LINUX命令执行产生的标准错误信息输出到一个变量里?
  • linux shell 获取输出值
  • linux下的ls输出问题
  • linux中怎么使后台进程的输出至控制终端?
  • Servlet高手急救:欲从servlet输出图形,请问linux环境下如何配置,web服务器为tomcat
  • LINUX下C++编程如何控制光标的位置,以达到在指定位置输出字符
  • linux 中如何将屏幕输出内容保存成文件
  • Linux shell script输出文件名
  • Linux有没有记录屏幕输入输出到文件的工具
  • 在LINUX中使用C调用系统命令,怎么取得系统命令的输出?
  • linux下如何将man某命令的帮助输出到文本中?
  • linux下怎么实现在屏幕上指定地方输出字符?
  • linux 音频编程 ioctrl怎样控制音频的输出通道
  • linux 文字模式 在屏幕输出显示颜色字体怎么做?
  • 如何在linux下定义一个64位的整型变量,并进行输出,用GCC编译
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • linux下子进程输出重定向的问题 iis7站长之家
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • linux命令大全详细分类介绍及常用linux命令文档手册下载


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3