2

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

4

1 回答 1

4

我可以推荐一个 C 库,它被称为LightPcapNg,显然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();
}
于 2017-07-27T09:03:21.670 回答