Есть ли функция для извлечения заголовка файла pcap или выполняется вручную (введите casting)?Доступ к заголовку файла pcap
ответ
Какую информацию вы пытаетесь извлечь из заголовка файла?
Вы можете получить основную и второстепенную версию с pcap_major_version()
и pcap_minor_version()
, длиной снимки с pcap_snapshot()
и типом канального уровня с pcap_datalink()
. Нет гарантии, что точность смещения часового пояса и метка времени действительны (libpcap устанавливает как 0). Также обратите внимание, что libpcap 1.1.0 и более поздние версии могут читать файлы pcap-ng, у которых есть заголовок файла pcap.
Libpcap не предоставляет никаких процедур непосредственно передать вам заголовок файла, и ничего, что вы могли бы напечатанный, чтобы быть заголовок файла не поставить, так что вы не можете сделать это с Libpcap. Если вы хотите прочитать заголовок файла, вам придется написать свой собственный код в заменить libpcap, и этот код не сможет обрабатывать, например, файлы pcap-ng (который будет типом файла по умолчанию в следующий выпуск Wireshark), в отличие от кода, который использует libpcap (который может читать файлы pcap-ng, если все сетевые интерфейсы в файле pcap-ng имеют одинаковый тип заголовка и длину снимка, когда они используют libpcap 1.1.0 или новее).
Заголовок файла pcap обрабатывается libpcap внутренне. Вам не придется вручную манипулировать им.
Вы можете открыть файл pcap для записи, используя pcap_dump_open
.
Вы можете открыть файл pcap для чтения, используя pcap_open_offline
.
Если в случае, если мне захотелось прочитать заголовок файла, тогда я должен набросить обработчик файла на структуру заголовка файла? @sander – user1192671
@ user1192671: это немного сложнее, чем это (в начале файла есть волшебное число, которое нужно интерпретировать, например.). Но вы можете проверить реализацию 'pcap_fopen_offline', чтобы узнать, как читать заголовок файла pcap. libpcap является открытым исходным кодом. –