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)…