gpt4 book ai didi

c - 使用 libpcap 测量上传/下载速率

转载 作者:太空宇宙 更新时间:2023-11-04 02:17:53 24 4
gpt4 key购买 nike

我在 C 应用程序中使用 libpcap(和 Windows 上的 winpcap)来监视网络流量。我需要区分每个网络适配器上的上传和下载流量,以生成连接速度统计信息,但库使用的过滤器表达式似乎不太容易支持这一点(即没有“传入”/“传出”运算符).

我考虑过的一种方法是查询每个适配器的 IP 地址,然后使用过滤器,例如 src host 1.2.3.4(测量上传)和 dst host 1.2。 3.4(测量下载量)。

我的问题是:

是否有比上述方法更好/更简单的方法(让我对每个适配器使用相同的过滤器表达式会很好)?

如果上述方法可行,那么单个适配器是否有可能拥有多个关联的 IP 地址?我问的原因是保存单个适配器地址详细信息的 pcap_addr 结构(在 struct pcap_if 中)有一个“下一个”成员表明这是可能的。

最佳答案

首先,请记住,pcap 只能看到数据包。它看不到“传出”或“传入”——只是数据包。所以是的,您必须使用 ip header 中的 src/dst 进行过滤。没有其他方法可以判断数据包是传入还是传出。

其次,是的,没有什么可以阻止具有多个 IP 地址的适配器。因此,您需要获取从该适配器配置的 IP 地址。 pcap_findalldevs() (WinPCap 文档)应该可以在此处为您提供帮助,您应该能够从中推断出要监控哪些设备。

关于c - 使用 libpcap 测量上传/下载速率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4693034/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com