我正在尝试识别我正在接收的数据包的以太类型。以太类型 ID 为 608,在 Ethertype.h(libpcap 1.2.1) 中没有对应的定义。大多数接收到的数据包的类型为 8,在 Ethertype.h 中也没有相应的定义。有没有人知道这背后的原因是什么,或者我应该联系 TCPDump 并提供错误报告。
问问题
1778 次
2 回答
1
您正在捕获pcap_datalink()
的返回值是多少?pcap_t
如果不是DLT_EN10MB
(值为 1),则您的数据包不是以太网数据包,您不应将它们解析为以太网数据包。
如果是DLT_EN10MB
,那么是十六进制 608 还是十进制 608?如果是十进制 608,它是一个长度字段而不是一个类型字段。这同样适用于 8,它是相同的十进制或十六进制,因此是长度值而不是类型值。
于 2012-03-18T18:38:28.233 回答
0
从手册页:
“ntohs() 函数将无符号短整数 netshort 从网络字节顺序转换为主机字节顺序。”。
从我的代码:
如果(ntohs(以太网->ether_type)==0x0800)...
于 2012-04-03T06:47:22.480 回答