Я использую библиотеку libnetfilter_queue. Но я не мог найти способ извлечь полезную нагрузку в функции обратного вызова. Я немного новичок. Подробная помощь будет высоко оценена! На самом деле я также хочу извлечь заголовок http из полезной нагрузки.
Как извлечь полезную нагрузку из пакета в очереди iptables
Ответы (1)
После того, как вы получили обратный вызов, получите дескриптор файла, связанный с обработчиком nfqueue, используя следующий API.
int nfq_fd (struct nfq_handle *h);
Затем вызовите стандартную функцию recv(), которая принимает дескриптор для чтения, буфер, в который он заполняет данные, и длину буфера.
if(recv(fd, buf, sizeof(buf), 0) >= 0)
printf("pkt received in buf\n");
Теперь buf содержит весь пакет. Я не думаю, что существует явный API для анализа http. Вы можете прочитать спецификацию стандарта http и пропустить байты до полей, которые вы ищете.
person
fkl
schedule
27.09.2012