Как извлечь поля параметров в заголовке TCP для файла pcap с помощью C / Stack Overflow

Как извлечь поля параметров в заголовке TCP с помощью C / C ++ в случае автономного файла pcap. Я попытался включить поле опций в структуру заголовка, но он не дает согласованного результата, когда я сравниваю результат с Wireshark. Кажется, что произвольные байты пропадают при доступе через структуру заголовка TCP. Пожалуйста помоги.

0

Решение

Вместо того, чтобы пытаться прочитать файл напрямую, используйте pcap_open_offline или же pcap_fopen_offline от libpcap, Это прочитает файл сохранения и позволит вам предоставить фильтры. Псевдокод выглядит следующим образом (вам нужно добавить обработку ошибок):

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-заголовков вам необходимо проверить тип Ethernet (ETHER_TYPE_IP против ETHER_TYPE_8021Q), затем найдите заголовок TCP (длина заголовка IP может варьироваться), и только тогда вы получите указатель на заголовок TCP.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]