Как установить разделитель между каждым захваченным пакетом в tcpdump? - PullRequest
0 голосов
/ 26 апреля 2019

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

Я бы хотел, чтобы следующий формат передавался в выбранную мной программу:

Src_IP_of_Packet, data

Где данные являются необработанными (не в формате ASCII и / или HEX). то есть data, которое я получаю с помощью следующей команды.

tcpdump udp port 2112 -i eth0 -s0 -w- 

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

1 Ответ

1 голос
/ 26 апреля 2019

Нет разделителя и нет способа значительно изменить вывод tcpdump, кроме того, чтобы сделать вывод более подробным.Если вы хотите проанализировать данные, лучше всего просматривать каждую строку текста как один пакет, хотя добавление одного или нескольких параметров -v изменит это отображение, что приведет к переменному количеству строк для каждого пакета.

Если вы хотите контролировать, какие поля в заголовках пакетов отображаются, и добавлять / изменять разделители, вы можете либо посмотреть на tshark, который является частью Wireshark, либо взаимодействовать с пакетами черезскриптовый язык;в этом случае Python, использующий Scapy, является отличным выбором.

...