c - 如何从 C 语言的 pcap 获取网络层和传输层协议(protocol)?

标签 c pcap libpcap

我正在做一项作业,要求我使用 libpcap 库从 C 语言的 pcap 文件中解析信息。我已经成功地弄清楚如何获取数据,例如源/目标 IP 地址、tcp/udp 端口​​和源/目标以太网地址。列表中的下一个是从所看到的网络和传输层协议(protocol)获取统计信息以及每个协议(protocol)有多少个数据包。恐怕我似乎不太清楚如何访问此内容,并希望有人能给我指出正确的方向。由于其他信息是从/usr/include/netinet.h 等位置的各种数据结构中收集的,这也应该在那里,但是,我又有点迷失了。

最佳答案

看来你已经有了答案...IP是一个网络层协议(protocol),所以如果你能找到IP地址,你就可以计算IP数据包。同样,TCP 和 UDP 都是传输层协议(protocol)。如果您可以在数据包中找到 TCP/UDP 端口,那么您就已经知道有多少数据包正在使用哪些协议(protocol)。

关于c - 如何从 C 语言的 pcap 获取网络层和传输层协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7843244/

相关文章:

c - 100% cpu 使用率和一个 libpcap 简单示例

c - 时间差(以微秒为单位)

c - Solaris 上的安德森队列锁

c - md5 引用错误

c - 需要帮助将二进制数转换为 C 中的字符串

c - 来自 ifconfig 和 libpcap 的接口(interface) ip 不匹配

c - printf 语句直到中断才打印

bash - 如何在仍在写入的同时连续读取 pcap 文件?

c - 使用带超时的 Pcap 收听

tcp - 从 * char eth/ip/tcp 打包程序表示中获取 TCP 选项(超出 tcphdr->doff)