Странный способ сформулировать ваш вопрос, но я постараюсь ответить на все, что могу.
pcap_open_offline()
принимает файл .dump (или файл с аналогичным именем с именем tcpdump, tcpslice или libpcap's * 1004).* + pcap_dump()
функции) в качестве входных данных.
Этот файл точно такой же по формату и функции, что и прямая трассировка сетевого устройства, т.е. вы можете использовать этот объект pcap_t в pcap_next, pcap_loop и т. Д..
Любое изменение файла дампа (IE, извлечение информации или разбор только того, что вы хотите с помощью tcpslice или wireshark) сделает его нечитаемым pcap_open_offline()
, так как он не будет отформатирован в видетрассировка живого пакета.
Однако он не загружает весь файл одновременно в память.Он выполняет потоковую передачу файла, как если бы вы передавали пакеты с прямой трассировки.
Подводя итог: pcap_open_live()
открывает неизмененный дамп tcpdump / tcpslice и читает его как живой поток.Он не загружает весь файл в свою память, так как дампы могут быть довольно большими!Вместо этого он просто просматривает файл, загружая только один пакет за раз.