Показать сообщение отдельно

  #9  
Старый 22.07.2009, 01:19
Gar|k
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме:
991929

Репутация: 395


По умолчанию

2 bons, эм вот вариант для UNIX с использованием tcpdump в качестве сниффера

Код:
packet_filter.c:

#include <stdio.h>
#define BUFSIZE 1024

int main(int argc, char* argv[]) {
   unsigned char buf[BUFSIZE];
   int szread;

   while ((szread = fread(buf,sizeof(unsigned char),BUFSIZE,stdin)) != NULL) {
      // анализ потока траффика...
      printf("read bytes %d",szread);
      }

   return 0;
}

комманда: 
cc packet_filter.c -o packet_filter
tcpdump -t -p -n -i em0 -c 100 -w- / packet_filter
что означает запустить сниффер на интерфейсе em0 перехватить 100 пакетов с выводом в сыром виде в stdout ( - после w) ну и сразу же pipe-ом перенаправить вывод на stdin нашей программы фильтра, который собсвтвенно и будет анализировать траффик (ну мож лишнее параметры типа -t...)

Последний раз редактировалось Gar|k; 30.07.2009 в 14:53..
 
Ответить с цитированием