Linux C ++:访问网络统计信息

时间:2012-09-03 14:35:06

标签: c++ linux networking network-programming

我正在使用C ++ for Linux开发网络统计程序。

我想访问有关当前网络连接的一些统计信息。

例如:

  • 丢包,
  • 传输
  • 字节(上传和下载),
  • 当前网络负载(上传和下载),

知道如何访问此类信息吗?


所以,我一直试图用de / proc来完成我的目标,我们可以找到很多信息,但是我需要一些缺少的信息。我正在考虑使用LibPcap开发一个简单的C ++混杂应用程序,它捕获我需要的网络流量并开始采用我想要的指标。

Con是我认为这将是CPU密集型的,至少需要更多...... 有什么想法吗?

4 个答案:

答案 0 :(得分:4)

所有这些信息都会传播到/proc/net个文件中(由内核更新)。最重要的文件是/proc/net/netstat。进入/proc/net/dev有设备统计信息。你可以打开并解析。

答案 1 :(得分:1)

/proc/net中的“文件”提供了大量信息。

/proc/net/netstat将是一个很好的起点。

答案 2 :(得分:0)

AFAIK,可以通过rtnetlink interface以编程方式检索统计信息。参见例如this mail for examples

答案 3 :(得分:0)

您可以通过/sys/class/net/NAME_OF_DEVICE/statistics访问网络统计信息。