0
如何在使用C/C++的情況下提取TCP頭中的選項字段以防脫機pcap文件。我嘗試在頭結構中包含option字段,但是當我將結果與Wireshark進行比較時,結果並不一致。當通過TCP頭結構訪問時,似乎任意字節都將丟失。請幫忙。如何使用C/C++提取pcap文件的TCP頭中的選項字段
如何在使用C/C++的情況下提取TCP頭中的選項字段以防脫機pcap文件。我嘗試在頭結構中包含option字段,但是當我將結果與Wireshark進行比較時,結果並不一致。當通過TCP頭結構訪問時,似乎任意字節都將丟失。請幫忙。如何使用C/C++提取pcap文件的TCP頭中的選項字段
而不是嘗試直接讀取文件,請使用libpcap
中的pcap_open_offline
或pcap_fopen_offline
。這將讀取保存文件並允許您提供過濾器。僞代碼是這樣的(你需要添加錯誤處理):
char *fname = "/path/to/my/file";
const u_char *packet;
pcap_t *handle;
handle = pcap_open_offline (fname, errbuf);
while (packet = pcap_next(handle,&header))
{
char *data = (char *) packet;
...
}
pcap_close (handle);
萬一你已經使用libpcap
,你必須張貼的代碼。請記住,要可靠地查找IP標頭,您需要檢查以太網類型(ETHER_TYPE_IP
vs ETHER_TYPE_8021Q
),然後找到TCP標頭(IP標頭的長度可能會有所不同),然後才能獲得指向TCP標頭的指針。