2010-05-09 82 views
2

代碼從here片段:那裏有什麼pcap_pkthdr?

void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data) 
{ 
    .... 
    /* retireve the position of the ip header */ 
    ih = (ip_header *) (pkt_data + 
     14); //length of ethernet header 
    .... 

什麼const struct pcap_pkthdr *header爲(definition),我們什麼時候需要它,它是如何填充(因爲在數據包本身如下沒有這樣的信息)?

alt text http://www.dcs.gla.ac.uk/~lewis/networkpages/m04s03EthernetFrame_files/image002.gif

回答

3

如果你會不停的評論,這本來是一點點更容易。它說:

/* Callback function invoked by libpcap for every incoming packet */ 

Here它說,大約typedef void(*) pcap_handler(u_char *user, const struct pcap_pkthdr *pkt_header, const u_char *pkt_data)

pkt_header是通過捕獲驅動程序包相關 頭。 它不是協議頭。