Данные WinPCap становятся усеченными - PullRequest
0 голосов
/ 16 февраля 2010

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

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

У меня есть c0 a8 в моем шестнадцатеричном немце, но после этого он заканчивается. Я пропускаю данные! Я вижу данные в Wireshark, но я не получаю данные через WinPCap.

Я до сих пор не сталкивался с этой проблемой. Есть идеи ТАК? Пока что нет ошибок доступа к памяти. Наверное, просто удача. : Х

EDIT: Мой основной взгляд на обработку пакетов взят из примера pktdump_ex.

Вот строка времени

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

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

1 Ответ

2 голосов
/ 16 февраля 2010

Как отмечается в его комментарии, это пахнет как неисправная оснастка конфигурации. Если вы посмотрите на winpcap api docs pcap_open () apidoc , он говорит:

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

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

...