pcap ng — генерирует файлы pcapng в программе на C ++

У меня есть программа на C ++, которая может генерировать pcap файлы. Тем не менее, я хотел бы добавить дополнительную информацию в записанные кадры, и я понимаю, что более новый формат pcapng позволяет добавлять произвольные комментарии к фреймам, которыми я бы хотел воспользоваться. Я тоже понимаю что libwiretap способен генерировать pcapng файлы, но я не нахожу ссылки, учебные пособия или примеры. Мои потребности очень просты: мне просто нужно открыть pcapng файл, время от времени выгрузите в него пакет, а затем закройте его. Есть ли у вас какие-либо полезные ссылки о том, с чего начать?

0

Решение

После некоторых проб и ошибок и чтения заголовочных файлов я создал следующий тестовый фрагмент:

#include <sys/time.h>
#include <string.h>
#include <wiretap/wtap.h>

int main() {

int err;
wtap_dumper *dumper = wtap_dump_open_ng("test.pcapng", WTAP_FILE_TYPE_SUBTYPE_PCAPNG, WTAP_ENCAP_ETHERNET, 65535, 1, NULL, NULL, NULL, &err);

char *packet = "helloworld";
char *err_info;
struct wtap_pkthdr header;
wtap_phdr_init(&header);
header.caplen = strlen(packet);
header.len = strlen(packet);
gettimeofday(&header.ts, NULL);
header.opt_comment = "how are you?";
wtap_dump(dumper, &header, packet, &err, &err_info);
wtap_phdr_cleanup(&header);

wtap_dump_close(dumper, &err);

return 0;

}

Я не думаю, что это хороший код, но он просто работает для меня (конечно, он генерирует недопустимые пакеты). Также в данный момент нет проверки ошибок.

Компилировать с:

gcc -o test `pkg-config --cflags --libs wireshark` -lwiretap test.c
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]