Linux中的实时RX和TX速率

hel*_*dre 2 c c++ python

我正在寻找一种以编程方式(无论是调用库还是独立程序)监视linux中的实时IP流量的方法.我不想要总计,我想要正在使用的当前带宽.我正在为OS X的istat菜单的网络流量监视器寻找类似(但非图形化)的工具.

我很确定这样的东西存在,但我不知道在哪里看,我宁愿不必重新发明轮子.

它是否像监视套接字一样简单?或者我是否需要一个可以为我处理大量开销的实用程序?

mrk*_*mrk 9

我们在/ proc/net/dev中有字节和数据包计数器,所以:

import time

last={}

def diff(col): return counters[col] - last[iface][col]

while True:
  print "\n%10s: %10s %10s %10s %10s"%("interface","bytes recv","bytes sent", "pkts recv", "pkts sent")
  for line in open('/proc/net/dev').readlines()[2:]:
    iface, counters = line.split(':')
    counters = map(int,counters.split())
    if iface in last:
      print "%10s: %10d %10d %10d %10d"%(iface,diff(0), diff(8), diff(1), diff(9))

    last[iface] = counters

  time.sleep(1)
Run Code Online (Sandbox Code Playgroud)

  • 在2.6内核上,`/ sys/class/net/$ dev/statistics`中有更详细的每设备统计信息 (3认同)