как прочитать файл pcap в С++, чтобы получить информацию о пакете?

Я хочу написать программу на С++ для чтения файла pcap и получения информации о пакетах, таких как len, source ip, флаги и т. д. Теперь я нашел код, как показано ниже, и я думаю, что это поможет мне получить информацию, но У меня есть несколько вопросов: сначала я хочу знать, какую библиотеку я должен добавить в свою программу, а затем, что такое pcap_next, и как я могу получить хэндл из файла pcap?

/* Grab a packet */
packet = pcap_next(handle, &header);
if (packet == NULL) {   /* End of file */
    break;
}
printf ("Got a packet with length of [%d] \n",
        header.len);

person user3210586    schedule 19.01.2014    source источник


Ответы (1)


Вам потребуется связать свое приложение с libpcap. Чтобы получить дескриптор, вы должны использовать pcap_open_offline. pcap_next считывает следующий пакет из дескриптора.

person icktoofay    schedule 19.01.2014
comment
спасибо за ваши полезные ссылки, у меня есть еще один вопрос. какую еще информацию о пакете я могу получить по заголовку и как? например, я могу написать «header.source ip» или «header.flag»? - person user3210586; 19.01.2014
comment
@ user3210586: не знаю. Я только знал, что эти функции были из libpcap, и мельком просмотрел страницы руководства. Возможно, вы сможете найти то, что ищете, если сами просмотрите их более внимательно. - person icktoofay; 19.01.2014