API的文档int socket(int domain, int type, int protocol);
说,如果给定域存在多个协议,则该协议指定一个特定协议。这似乎意味着对于给定套接字的给定域只能指定一个协议。
我在 Linux 中试验原始套接字,但后来我偶然发现了这个协议。我知道 pcap 库可用于捕获任何协议的数据包。我使用 pcap 编写了一个 Q&D 程序,我注意到if_ether.h
文件中定义的大多数常见协议都被捕获。
所以目前在我的程序中,我只能指定要捕获的一种类型的数据包。有没有办法使用标准 Linux 头文件和库来复制 pcap 行为?pcap 如何实现这一点?我试图用谷歌搜索这个问题,但我认为我的查询格式不正确,因为我得到的结果没有多大用处。
我不想在这里解决任何问题,只是学习这个概念。