Я хочу инкапсулировать весь трафик в UDP. Я могу захватить его уже и отправить вперед. Но теперь я хочу сделать инкапсуляцию. Для этой задачи мне нужно получить полный пакет в необработанной форме. Но как я могу это сделать? Мой код:Получить пакет в необработанном виде с netfilter
while ((rv = recv(fd, buf, sizeof(buf), 0)))
{
printf("pkt received\n");
nfq_handle_packet(h, buf, rv);
}
Должен ли я сделать это в своем обратном вызове? Если да, то как? Или я могу просто установить NF_DROP в своем обратном вызове и использовать buf и rev от while loop? Я могу найти функцию от netfilter, чтобы получить полезную нагрузку, dst, src и т. Д., Но не пакет в необработанном виде. Или я могу как-то переосмыслить nfq_data на char *?
вы найдете здесь легковесную библиотеку TCP/IP, в файле rawapi.txt есть интересная документация в папке doc, я думаю, что это поможет вам, я не знаю, что вы используете для сырой библиотеки tcp/ip. ссылка: http://savannah.nongnu.org/projects/lwip/ – HDJEMAI