Tag: tcpdump

PCAP Ethertype返回

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

重建数据包以通过pcap注入

情况就是这样:在我的场景中,我有3台电脑,A,B和C. 计算机A将数据发送到计算机B.计算机B使用pcap捕获这些数据包,附加标头,重做校验和,然后将另一个以太网接口注入计算机C.所以基本上A发送到C,尽管从C的角度来看,数据来自计算机B. 我的问题是:在TCPDUMP关于剖析捕获的数据包的教程之后,我学会了计算偏移并使用类型转换来获取以太网,ip和tcp头结构。 这样做的方法如下所示: ethernet = (struct sniff_ethernet*)(packet); ip = (struct sniff_ip*)(packet + SIZE_ETHERNET); size_ip = IP_HL(ip)*4; if (size_ip < 20) { printf(" * Invalid IP header length: %u bytes\n", size_ip); return; } tcp = (struct sniff_tcp*)(packet + SIZE_ETHERNET + size_ip); size_tcp = TH_OFF(tcp)*4; if (size_tcp < 20) { printf(" * Invalid TCP header length: […]