我需要将UDP数据包保存到文件中,并希望使用pcap格式以重用各种可用工具(如wireshark、tcpdump等)。 在这个帖子中有一些信息,但我找不到如何编写全局文件头"结构体pcap_file_header"。
pcap_t* pd = pcap_open_dead(DLT_RAW, 65535);
pcap_dumper_t* pdumper = pcap_dump_open(pd, filename);
struct pcap_file_header file_hdr;
file_hdr.magic_number = 0xa1b2c3d4;
file_hdr.version_major = 2;
file_hdr.version_minor = 4;
file_hdr.thiszone = 0;
file_hdr.sigfigs = 0;
file_hdr.snaplen = 65535;
file_hdr.linktype = 1;
// How do I write file_hdr to m_pdumper?
while( (len = recvmsg(sd, &msg_hdr, 0)) > 0 )
pcap_dump((u_char*)m_pdumper, &m_pcap_pkthdr, (const u_char*)&data);
我应该如何编写全局文件头呢?如果没有特定的pcap函数可用,我该如何检索文件描述符并使用write()插入头文件?
pcap_dump
,您仍需要伪造一个 IP 标头,而上面链接的补丁可能会有所帮助。 - je4d