Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2002.09.02;
Скачать: [xml.tar.bz2];

Вниз

Помогите разобраться с WinPcap   Найти похожие ветки 

 
GM_   (2002-06-18 09:20) [0]

При установке фильтра с помощью PacketSetBpf для каждого покета я получаю lpPacket->ulBytesReceived равное нулю
(без установки фильтра всё работает как положено)
Я пытаюсь поставить фильтр таким образом:
(обработку ошибок вырезал для краткости)
struct bpf_program fp;
struct NetType nt;
lpAdapter =PacketOpenAdapter(AdapterList[Number]);
PacketSetHwFilter(lpAdapter,NDIS_PACKET_TYPE_PROMISCUOUS);
PacketSetBuff(lpAdapter,512000);
PacketSetReadTimeout(lpAdapter,1000);
fstr="tcp";
PacketGetNetType(lpAdapter,&nt); // эти 4е строчки
PacketGetNetInfo(AdapterList[Number],&ip,&netmask); // для установки
pcap_compile_nopcap(1514,nt.LinkType,&fp,fstr,1,netmask);// фильтра
PacketSetBpf(lpAdapter,&fp); // пакетов
lpPacket = PacketAllocatePacket();
PacketInitPacket(lpPacket,(char*)buffer,256000);
while(1)
{
PacketReceivePacket(lpAdapter,lpPacket,TRUE)
printf("%d\n",lpPacket->ulBytesReceived)
}

Если например закоментировать PacketSetBpf то я получаю много лишних пакетов, но lpPacket->ulBytesReceived равен размеру полученого пакета (как и должно быть)
Подскажите кто-нибудь в чём проблема


 
МИФИст   (2002-06-18 12:21) [1]

Попробуй fstr = "ip proto tcp";


 
МИФИст   (2002-06-18 16:24) [2]

Ты пробовал запускать свою прогу без прав Администратора? У меня не видит адаптеров. Интересно как это обойти.


 
GM_   (2002-06-18 23:16) [3]

сама строка фильтра не имеет значения, можно и так
она на любой мой фильтр ничего не получает
я понял почему ulBytesReceived - 0, функция по таймауту возвращается
но проблема всё равно осталась, если я не ставлю таймаут, то функция просто не возвращает управление, хотя пакеты, попадающие под фильтр по сети идут
З.Ы. без прав все работает отлично (если не ставить фильтр :) )


 
МИФИст   (2002-06-19 00:05) [4]

А ты не хочеш сам фильтр сделать? Просматривай приходящие заголовки нужные сохраняй, на остальные забивай. У тебя сетевуха или модем?


 
GM_   (2002-06-19 00:26) [5]

самому фильтр - ооочень тормозно работать будет...


 
МИФИст   (2002-06-19 19:40) [6]

Кстати, мне сейчас тоже нужно фильтр использовать =)
Ты не делал генератор пакетов?
Интересно, что за глюк захожу без прав Админа и не видно адаптеров. =(


 
GM_   (2002-06-20 22:52) [7]

To МИФИст
генератор пакетов делал
прогу с фильтром периписал используя wpcap.dll, работает нормально
с packet.dll я вероятно какиенить парам-ры неправитьно указал (плохо что не знаю какие)
про права админа: попробуй последнюю версию winpcap скачать


 
МИФИст   (2002-06-21 22:07) [8]

У меня версия 2.3, а у тебя?

Как ты посылаешь сформированные пакеты?
Я так, но что глючит: Violation и синий экран.

function SendPacket(Pack: PChar; PackSize: Integer): Boolean;
begin
Result:=False;
NewPacket:=PacketAllocatePacket;
PacketInitPacket(NewPacket,@Pack,PackSize);
if PacketSendPacket(FPCAP.Adapter,NewPacket,True) then
Result:=True;
PacketFreePacket(NewPacket);
end;


 
GM_   (2002-06-21 22:37) [9]

у меня тоже 2.3
if((lpPacket = PacketAllocatePacket())==NULL){//делаю инициализацию 1 раз в начале программы
printf("Failed to allocate the packet structure\n");
exit(-1);}
if (!PacketSendPacket(((struct pcap *)fp)->adapter,lpPacket,true)){//делай в программе много раз
printf("Error SendPacket\n");
exit(-1);}
PacketFreePacket(lpPacket);//делаю один раз в конце программы


 
GM_   (2002-06-21 22:39) [10]

и забыл ещё
PacketInitPacket(lpPacket,packetbuff,Snaplen)
каждые раз перед PacketSendPacket


 
МИФИст   (2002-06-21 23:38) [11]

Что то я не вижу разницы, а почему же у меня не работает? И что за глюк с Админом, причём под 98 всё пашет в локалке, а под 2000 нужно заходить админом.



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2002.09.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.011 c
1-3328
Денис М Радченко
2002-08-20 16:55
2002.09.02
Поиск по файлам


1-3404
Егор
2002-08-20 14:46
2002.09.02
Командная строка


1-3517
T2
2002-08-21 15:32
2002.09.02
qtintf.dll - что за беда?


1-3457
Cem
2002-08-20 20:36
2002.09.02
Как сделать, чтобы компонент рисовал на своем parent.


1-3341
Анна
2002-08-21 18:05
2002.09.02
Вопрос





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский