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();
}
我有兴趣在不使用 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();
}