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