C++ - 在没有 libpcap 的情况下读写 pcapng 文件

C++ - read and write pcapng files without libpcap

我有兴趣在不使用 libpcap 或 WinPcap 的情况下读写 pcapng 文件。任何人都知道该怎么做?

我可以推荐一个 C 库,它被称为 LightPcapNg and apparently PcapPlusPlus 正在使用它来获得更清晰的 C++ 包装器。

由于您对 C++ 感兴趣,下面是一段代码,说明如何使用 PcapPlusPlus 读取 pcap-ng 文件:

#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();
}