Данные WinPCap усекаются

Работая над анализом пакетов Arp, я обнаружил эту замечательную проблему.

при получении пакета Arp я анализировал IP-адрес цели.

У меня в гексе с0 а8 тупой, но после этого он заканчивается. Мне не хватает данных! Я вижу данные в Wireshark, но не получаю данные через WinPCap.

Я еще не сталкивался с этой проблемой раньше. Любые идеи ТАК? Пока ошибок доступа к памяти нет. Наверное просто повезло. :Икс

РЕДАКТИРОВАТЬ: мой основной взгляд на обработку пакетов взят из примера pktdump_ex.

Вот строка пока

while((res = pcap_next_ex( fp, &header, &pkt_data)) >= 0)

После того, как это выполнено, snalen равен 2b.


person bobber205    schedule 16.02.2010    source источник
comment
Покажите какой-нибудь код. Насколько большим вы установили «Snaplen» при захвате? А вы уверены, что у вас нет ошибки в вашей программе?   -  person nos    schedule 16.02.2010


Ответы (1)


Как отмечено в комментарии, это пахнет неисправной конфигурацией snaplen. Если вы посмотрите документацию API winpcap pcap_open() apidoc , Здесь утверждается:

snaplen: длина сохраняемого пакета. Для каждого пакета, полученного фильтром, в буфере сохраняются и передаются пользовательскому приложению только первые байты 'snaplen'. Например, snaplen, равный 100, означает, что сохраняются только первые 100 байтов каждого пакета.

В качестве объяснения второго параметра pcap_open. Если вы не предоставите более подробные фрагменты кода для работы, это самый близкий к ответу, который мы получим.

person amo-ej1    schedule 16.02.2010
comment
Я могу получать ГОРАЗДО более длинные пакеты, чем эти относительно короткие arp-короткие пакеты каждый раз. - person bobber205; 17.02.2010