C++ - чтение и запись файлов pcapng без libpcap

Я заинтересован в чтении и записи файлов pcapng без использования libpcap или WinPcap. Кто-нибудь знает, как это сделать?

1 ответ

Решение

Я могу порекомендовать C-библиотеку, которая делает это, она называется LightPcapNg, и, очевидно, PcapPlusPlus использует ее для создания более чистой оболочки C++.

Поскольку вы интересуетесь C++, вот фрагмент кода о том, как читать файл pcap-ng с помощью PcapPlusPlus:

#include <PcapFileDevice.h>

void readAndWritePcapNg(char* inputFileName, char* outputFileName)
{
    // reader instance
    PcapNgFileReaderDevice readerDev(inputFileName);

    // writer instance
    PcapNgFileWriterDevice writerDev(outputFileName);

    // open reader and writer
    readerDev.open();
    writerDev.open();

    RawPacket rawPacket;

    // read packets from file
    while (readerDev.getNextPacket(rawPacket))
    {
        Packet packet(&rawPacket);

        // do whatever you want with the packet
        ....
        ....

        // write the packet to the output file
        writerDev.writePacket(rawPacket);
    }

    // close reader and writer
    readerDev.close();
    writerDev.close();
}
Другие вопросы по тегам