2016-11-15 6 views
0

Konnte mir jemand erklären, wie pcap Paket Header in C verwendet werden? Ich kann keine klare Erklärung finden, wie es strukturiert und verwendet wird.Understanding pcap packet header

In der Tat ist das, was ich verstehe nicht, wie wir die pcap Bibliothek verwenden #include <pcap.h>

der Tat, ich brauche ein struct pcap_pkthdr *header zu verwenden, aber ich kann nicht herausfinden, wie es zu benutzen.

Dank

Antwort

0

Pcap definiert einen Header für jedes Paket. Zusammen mit dem Header der pcap-Datei wird Ihnen der Paket-Header ermöglichen, die Daten im pcap-Dump zu verstehen.

struct pcap_file_header { 
     bpf_u_int32 magic; 
     u_short version_major; 
     u_short version_minor; 
     bpf_int32 thiszone; /* gmt to local correction */ 
     bpf_u_int32 sigfigs; /* accuracy of timestamps */ 
     bpf_u_int32 snaplen; /* max length saved portion of each pkt */ 
     bpf_u_int32 linktype; /* data link type (LINKTYPE_*) */ 
}; 

struct pcap_pkthdr { 
     struct timeval ts;  /* time stamp */ 
     bpf_u_int32 caplen;  /* length of portion present */ 
     bpf_u_int32 len;  /* length this packet (off wire) */ 
}; 

Zuerst werden Sie den Dateiheader und danach alle erfassten Pakete haben. In C können Sie 24 Bytes des pcap-Dumps lesen und dann diese Bytes der pcap-Dateikopfstruktur zuordnen. Danach können Sie mit dem Lesen aller verschiedenen Pakete beginnen. Beachten Sie, dass es verschiedene Versionen von pcap gibt und was ich hier geschrieben habe, gilt nicht für jeden pcap-Dump.