#node.js #parsing #pcap
#node.js #синтаксический анализ #pcap
Вопрос:
Я использую npm pcap-анализатор, очевидно, для анализа файлов PCAP. https://www.npmjs.com/package/pcap-parser . Иногда я просматриваю очень большой файл PCAP, и мне нужно проанализировать только первые несколько (сотни или тысячи) пакетов.
Возможно ли остановить анализатор от чтения всего файла? События, которые он выдает, — это packet, end и error, поэтому я не могу понять, как остановить его от возврата к получению следующего пакета каждый раз. Я хотел бы иметь возможность указать, чтобы он остановился, если это возможно.
Ответ №1:
Здесь не так много ответов, поэтому не уверен, что есть большой интерес, но на всякий случай я выяснил, как это сделать.
Предположим, что вы анализируете входной файл: var parser = pcapp.parse(inFile);
Когда анализатор начинает прокручивать файл и идентифицировать пакеты, вы определяете функцию с именем (например) «onPacket», чтобы сообщить ему, что делать с каждым пакетом: parser.on(‘packet’, onPacket);
В любой момент, когда анализатор обрабатывает пакеты, вы можете удалить этот прослушиватель, используя следующее: parser.removeListener(‘packet’,onPacket);
Это также, по-видимому, приводит к тому, что анализатор выдает «end», который приведет код к тому, что вы определили для parser.on(‘end’, endFunction)
Ссылка для обработки событий и прослушивателей здесь: https://nodejs.org/api/events.html#events_emitter_removelistener_eventname_listener