Назад | Перейти на главную страницу

Подсчет количества потоков в файле tcpdump

У меня есть большой файл tcpdump, который мне нужно проанализировать, чтобы определить количество потоков в захвате на основе пар (исходный IP-адрес + исходный порт, целевой IP-адрес + целевой порт). Предоставляет ли tcpdump / любой другой инструмент какие-либо средства для получения таких данных напрямую? / Есть какие-нибудь советы о том, как оптимизировать мой парсер для выполнения этой операции? Любая помощь / руководство очень ценится. Спасибо.

Попробуйте что-то вроде этого:

tcpdump -r capturefile.dmp | awk '{ print $3 " " $5 "\n" }' | sort | uniq | wc -l

Предполагая, что ваш tcpdump генерирует тот же вывод, что и мой, команда awk распечатает исходный IP + порт и целевой IP + порт (с последующим двоеточием, которое в данном случае не имеет значения), например:

zangetsu.smcc.loc.56256 scfire-a28.websys.aol.com.http:

Поскольку установленное соединение снова будет использовать те же номера портов, вы сворачиваете эти повторяющиеся строки с помощью sort | uniq; wc -l считает строки. Вам нужно будет разделить это число на 2, поскольку IP-адрес является двунаправленным и меняет местами источник / назначение при отправке пакетов обратно.

Вы можете отфильтровать нежелательные пакеты для UDP, ICMP и прочего с помощью фильтров tcpdump и других вещей с помощью grep перед сортировкой.