libpcap文件头c ++

时间:2018-01-15 22:26:28

标签: c++ header global libpcap

如何在libpcap中初始化pcap_file_header函数? 目前使用pcap_open_offline读取pcap文件,并使用每个数据包中的pcap_pkthdr头和数据提取信息。只是希望能够从全局标题中提取信息? 任何帮助/建议非常感谢。 //第2步 - 获取文件名     string file =" /Users/trader/Documents/udp-224.0.31.11_14320.cap" ;;

//Step 3 - Create an char array to hold the error.
// Note: errbuf in pcap_open functions is assumed to be able to hold at least PCAP_ERRBUF_SIZE chars
// PCAP_ERRBUF_SIZE is defined as 256.
char errbuff[PCAP_ERRBUF_SIZE];

//Step 4 - Open the file and store result in pointer to pcap_t
//Use pcap_open_offline
pcap_t * pcap = pcap_open_offline(file.c_str(), errbuff);

//Step 5 - Create a header and a data object

// Create a header object:
struct pcap_file_header *globalHeader;
struct pcap_pkthdr *header;
const u_char *data;

//Step 6 - Loop through packets and print them to screen
u_int packetCount = 0;
char sourceIp[INET_ADDRSTRLEN];
char destIp[INET_ADDRSTRLEN];
printf("-----------------------------------------------------------------");

globalHeader= (struct pcap_file_header*) file.c_str();
printf("\nMagic Number: %x\n", globalHeader->magic);
printf("Major Version Number %x\n", globalHeader->version_major);
printf("Minor Version Number  %x\n", globalHeader->version_minor);
printf("GMT to local correction: %x\n", globalHeader->thiszone);
printf("Accuaracy of Timestamp: %x\n", globalHeader->sigfigs);
printf("Max length of captured packets, in octets: %x\n", globalHeader->snaplen);
printf("Data Link Type  %x\n", globalHeader->linktype);

0 个答案:

没有答案