Nano Hash - криптовалюты, майнинг, программирование

Возможности библиотеки PCAP (запись новых файлов PCAP)

Я застрял.

Я использовал PCAP.NET для чтения файлов .PCAP и записи пакетов в базу данных. Теперь я могу запросить базу данных и получить обратно пакеты, соответствующие ограничениям. Мне нужен способ записать результаты в новый файл .PCAP.

Проблема в том, что, насколько я могу судить, единственный способ сгенерировать новый файл PCAP — через DumpFile, который можно инициализировать только через PacketCommunicator, который сам привязан к PacketDevice.

пример можно увидеть здесь: http://pcapdotnet.codeplex.com/wikipage?title=Pcap.Net%20Tutorial%20-%20Handling%20offline%20dump%20files&referringTitle=Pcap.Net%20User%20Guide

Ну и хорошо, но в этом случае у меня нет устройства.

Должен ли я запускать собственный модуль записи PCAP только для этой цели?

Я пропустил что-то очевидное?

Как я могу получить эти пакеты в новый файл PCAP?

Я убежден, что упустил из виду что-то простое... PCAP для меня новая территория, и я чувствую себя очень не в своей тарелке. Специалисты Unix указывают, что libpcap, на котором основаны winpcap и, следовательно, pcap.net, обеспечивает возможность записи непосредственно в файл pcap. Функциональность не представлена ​​в библиотеке?

Рекомендации очень приветствуются.

Спасибо,

Крис

P.S. Это пересмотр моего исходного вопроса, заданного здесь: .NET записывает файлы PCAP

22.06.2012

Ответы:


1

Функциональность не представлена ​​в библиотеке?

Какая библиотека?

Он доступен в libpcap/WinPcap, но открывать файл для вывода немного неудобно — вам нужен pcap_t для устройства захвата, pcap_t для файла захвата, или фиктивный pcap_t для уровня связи тип заголовка и длина моментального снимка файла, который вы записываете, если пакеты, которые вы записываете, не поступают из захвата в реальном времени или из существующего файла захвата.

Я не смог найти никакой справочной документации по Pcap.NET, только учебную документацию, но, похоже, не было ничего, что позволило бы вам открыть фиктивный дескриптор — вы можете открыть устройство захвата или автономный файл захвата, но я этого не сделал. не вижу ничего о создании фиктивного дескриптора, из которого вы не можете читать пакеты, но который вы можете использовать при открытии файла захвата для записи, поэтому вся функциональность, доступная в libpcap/WinPcap, НЕ доступна в Pcap .NET, насколько я могу судить.

26.10.2012

2

Вы можете создать заголовок и формат pcap, спецификация проста, и вам не нужна внешняя библиотека, кроме pcap.h.

struct pcap_file_header {
    bpf_u_int32 magic;
    u_short version_major;
    u_short version_minor;
    bpf_int32 thiszone;     /* gmt to local correction */
    bpf_u_int32 sigfigs;    /* accuracy of timestamps */
    bpf_u_int32 snaplen;    /* max length saved portion of each pkt */
    bpf_u_int32 linktype;   /* data link type (LINKTYPE_*) */
};

Итак, ваш файл сначала создает заголовок для файла pcap, например:

    struct pcap_file_header pheader;

    pheader.magic = 0xA1B2C3D4; // MAGIC NUMBER FOR TCPDUMP
    pheader.version_major = PCAP_VERSION_MAJOR;
    pheader.version_minor = PCAP_VERSION_MINOR;
    pheader.thiszone = 0;
    pheader.sigfigs = 0;
    pheader.snaplen = 1500;
    pheader.linktype = 1;

И для записи каждого пакета вам нужна структура вроде:

typedef struct {
    int32_t t0;
    int32_t t1;
    int32_t len;
    int32_t caplen;
} pcap_header_writeable;

Таким образом, вы будете писать в файле так:

    pcap_header_writeable header;

    header.t0 = 0;
    header.t1 = 0;
    header.len = length;
    header.caplen = length;

    // write the header on the file 
    // write the packet on the file after the header
15.01.2020

3

В Руководстве пользователя Pcap.Net "Обработка файлов автономного дампа" есть пример использования класса PacketDumpFile для записи файла дампа. Я не вижу справочного руководства по Pcap.Net; чтобы ответить на этот вопрос , пользователь прочитал исходный код Pcap.Net.

16.01.2020
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..