我正在寻找一种以编程方式(无论是调用库还是独立程序)监视linux中的实时IP流量的方法。 我不想要总计,我想要正在使用的当前带宽。 我正在为OS X的istat菜单的网络流量监视器寻找类似(但非图形化)的工具。
我相当确定这样的东西存在,但我不知道在哪里看,我宁愿不必重新发明轮子。
它是否像监视套接字一样简单? 或者我是否需要一个可以为我处理大量开销的实用程序?
我们在/ 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)
我使用一个名为dstat
的小程序它将很多“stat”函数组合成1个快速输出。 非常可定制。 它将为您提供当前的网络吞吐量以及更多。
在linux中,程序netstat
将为您提供原始网络统计信息。 您可以自己解析这些统计信息以生成有意义的输出(这就是dstat所做的)。
您可以使用以下dstat
命令获取网络吞吐量和数据包计数:
dstat -n --net-packets -f 10
或者,如果要监视特定接口,可以执行以下操作:
dstat -n --net-packets -N eth0,wlan0 10
如果您更喜欢bits per second
更传统的bits per second
输出:
dstat -n --net-packets -N eth0,wlan0 --bits 10
这将为您提供10秒的平均值。 如果您希望将其写出来进行后期处理,可以使用以下方法导出为CSV文件:
dstat -n --net-packets -N eth0,wlan0 --bits 10
Dstat附带了很多插件,可以将这些指标与系统中的其他指标相关联,如果您需要自定义数据或监控特定于您环境的内容,它可以让您灵活地添加自己的(python)插件。
需要了解更多c/c++开发分享Linux中的实时RX和TX速率,也可以关注C/ C++技术分享栏目—计算机技术网(www.ctvol.com)!
以上就是c/c++开发分享Linux中的实时RX和TX速率相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/979543.html