Использование tcpdump при расширении файлов журналов - PullRequest
1 голос
/ 30 марта 2012

All

Я пытаюсь отладить простой маршрутизатор, в котором все входящие в него пакеты и отправленные по сети регистрируются в читаемом лог-файле tcpdump.

Сейчас я делаю прогон программы, останавливаю ее, затем использую tcpdump для просмотра журнала пакетов.

Есть ли способ заставить tcpdump постоянно обновляться при добавлении пакетов в файл журнала? то есть как работает хвост?

В идеале я хотел бы запустить программу внутри gdb, а затем, когда пакеты отправляются / отправляются, вижу, что они всплывают в потоке, заданном tcpdump.

Edit: Сейчас я использую команду tcpdump:

$tcpdump -r out.log -e -vvv- x

Ответы [ 2 ]

0 голосов
/ 31 марта 2012

Редактировать: Не уверен на 100%, если я пойму, что вы хотите, но подходит ли tee?

Т.е.:

sudo tcpdump '(порт udp и src 53)' -nnvvXSs 1514 -l | тройник dump.log

-l Сделать буферизованную строку стандартного вывода


Если вы хотите взломать C, код sniffex.c , вероятно, можно изменить в соответствии с вашими потребностями.

Для начала измените filter_exp, чтобы удовлетворить ваши потребности.

Количество пакетов устанавливается num_packets, жестко закодировано на 10, используется в pcap_loop():

int pcap_loop (pcap_t * p, int cnt, обратный вызов pcap_handler, пользователь u_char *);
cnt Задает максимальное количество пакетов для обработки перед возвратом. Отрицательное значение приводит к тому, что подпрограмма pcap_loop зацикливается бесконечно, или пока не будет достигнут EOF или не произойдет ошибка. Значение 0 обрабатывает все пакеты, пока не произойдет ошибка или не будет достигнут EOF. *

argv[1] - это устройство для использования.


Обычно вывод по умолчанию:

Packet number 2:
       From: 123.123.123.123
         To: 10.0.0.10
   Protocol: TCP
   Src port: 153
   Dst port: 53
   Payload (1440 bytes):
00000   de 15 be 61 60 47 9a 14  92 b0 5b 7c fa 64 51 4b    ...a`G....[|.dQK
00016   b0 b5 c4 4c b0 c2 a8 a3  89 60 10 36 29 7e 10 0c    ...L.....`.6)~..
00032   94 15 01 9a a5 29 26 0a  a9 a4 82 70 9f 22 ac 90    .....)&....p."..
...
0 голосов
/ 31 марта 2012

со страницы руководства :

-r  Read packets from file (which was created with the -w option).
    Standard input is used if file is ``-''.

, чтобы вы могли передать файл в tcpdump.

...