請問一下,現在知道一個報文的十六進制文件,如下圖,只知道紅色括號內的報文(也就是從以太頭一直到payload),要自己制作pcap文件,請問怎麼設置pcap文件格式中的,數據頭(pcap_pkthdr)中的長度呢?caplen,len
經過查閱資料,以及各位的回答,在知道十六進制字符創或二進制數據,可以使用pcap_open_dead();函數
dump_p = pcap_open_dead(DLT_EN10MB, 65535);
根據需要的類型進行設置,然後
dump_t_p = pcap_dump_open(dump_p, FileName);
打開要寫入的文件,獲得文件句柄(類似)
pcap_dump((u_char*)dump_t_p, &Gq_pcap_pkthdr, (u_char*)Binbuf);
然後將獲得數據轉換成二進制存儲Binbuf中,全部交給pcap_dump進行處理寫入文件即可
pcap_dump_close(dump_t_p);
最後在關閉文件即可。
設置數據包頭的時候,可以先不考慮時間,將時間戳都設置成0即可,長度根據你獲得的數據包長度進行設置,字節為單位。