6

我正在用 C++ 为 Linux 开发一个网络统计程序。

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

例如:

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

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


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

缺点是我认为这将是 CPU 密集型的,至少比需要的还要多……对此有什么想法吗?

4

4 回答 4

4

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

于 2012-09-03T14:48:02.227 回答
1

很多信息都可以从/proc/net.

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

于 2012-09-03T14:41:40.743 回答
1

AFAIK,可以通过rtnetlink 接口以编程方式检索统计信息。有关示例,请参见例如此邮件

于 2012-09-06T15:58:38.670 回答
1

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

于 2017-07-24T16:28:25.013 回答