linux - 从 pcap_findalldevs() 过滤网络设备

标签 linux ubuntu pcap

我应该嗅探 fiven 机器(Linux - Ubuntu)上安装的所有网络接口(interface)。为此,我正在使用 pcap 库。所以我正在使用 pcap_findalldevs(...) 函数找到所有可用的设备,但结果也是我不想使用的 usb 和环回设备。

你能告诉我如何只过滤网络(以太网和 wifi)设备吗?

最佳答案

我想这取决于您所说的“网络”设备是什么意思。

如果您指的是 IPv4/IPv6 设备,您可以查询 pcap_findalldevs 返回的 pcap_if_t->address 并查看每个地址的 addr.sa_family 字段以确定该设备是否支持 AF_INET 和/或 AF_INET6。环回设备将 (pcap_if_t->flags & PCAP_IF_LOOPBACK) != 0

问题在于,它将包括非以太网和 WiFi 的设备,例如 token 环、IP-over-Firewire、PPP 等。 PCAP 不提供可移植的方式来了解硬件类型。

关于linux - 从 pcap_findalldevs() 过滤网络设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9267109/

相关文章:

有人可以解释一下这些代码片段吗?

linux - Avahi 主机名解析 : Is it caching somewhere?

machine-learning - 在 MATLAB 中使用朴素贝叶斯分类器进行互联网流量分类

mysql - 访问数据库的用户列表

php - Composer 包 maatwebsite/excel 需要 Libzip4,但已安装

ubuntu - PHP 启动 : Unable to load dynamic library (NEW RELIC)

Docker 无法在 Windows 上运行 Ubuntu 20.04

linux - 使用 TCPREPLAY 将时间戳添加到数据包有效负载

c - 如何使用 gtk3 在 linux 上的 c 中的窗口之间切换

安卓目标 : not installed and plugin installation failed Cordova