PCAP Ethertype返回

我试图识别我收到的数据包的以太类型。 以太类型ID为608,在Ethertype.h(libpcap 1.2.1)中没有相应的定义。 收到的大多数数据包都有8的类型,在Ethertype.h中也没有相应的定义。 有没有人知道原因可能背后是什么,或者我应该联系TCPDump与错误报告。

pcap_datalink()在您捕获的pcap_t上的返回值是多少?

如果它不是DLT_EN10MB (值为1),则您的数据包不是以太网数据包,您不应将它们解析为以太网数据包。

如果它是DLT_EN10MB ,那么是hex608还是十进制608? 如果它是十进制608,则它是长度字段而不是类型字段。 这同样适用于8,它是相同的十进制或hex,因此是长度值而不是类型值。

从联机帮助页:

“ntohs()函数将无符号短整数netshort从网络字节顺序转换为主机字节顺序。”

从我的代码:

if(ntohs(ethernet-> ether_type)== 0x0800)…