Как извлечь полезную нагрузку из пакета в очереди iptables

Я использую библиотеку libnetfilter_queue. Но я не мог найти способ извлечь полезную нагрузку в функции обратного вызова. Я немного новичок. Подробная помощь будет высоко оценена! На самом деле я также хочу извлечь заголовок http из полезной нагрузки.


person adnan kamili    schedule 27.09.2012    source источник


Ответы (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 и пропустить байты до полей, которые вы ищете.

libnetfilerqueue

person fkl    schedule 27.09.2012