Вам необходимо добавить следующую строку в свой .muttrc
:
save-hook . '=INBOX.Archives.2015'
Итак, получив подсказку из этого ответа, я придумал этот скрипт:
$ tshark -r assign1.pcap | sort -n -r -k7 | awk '!seen[$3]++' | awk '{print $3}' | head -n 5 >> result.txt
Объяснение каждой команды в строке:
tshark -r assign1.pcap
прочитать файл pcap sort -n -r -k7
числовая сортировка (-n )файл на основе (-r )обратный порядок (-k7 )столбец 7 [в этом столбце указана длина пакета для каждого IP-адреса] awk '!seen[$3]++'
IP-адрес источника печати (3-й столбец ), который не был замечен ранее, поэтому он печатает только уникальные IP-адреса awk '{print $3}'
печатать только 3-й столбец (исходный IP-адрес)head -n 5 >> result.txt
, так как мне нужны первые 5, поэтому я ограничил свои результаты только 5 с помощью команды head , также последняя >> result.txt
добавляет результат терминала в текстовый файл. Я думаю, что если вы реорганизуете вывод из tshark
с помощью -T fields
, это будет намного проще. Я смог добиться того, чего ты хочешь, вот так:
$ tshark -r blah.pcap -T fields -e frame.len -e ip.src | sort -k 1n | tail -5
92 10.0.2.2
92 10.0.2.2
92 10.0.2.2
100 10.0.2.15
156 10.0.2.15
Вы можете использовать эту команду для получения списка всех полей:
$ tshark -G field
Но я нашел это немного трудным для чтения. Если вы хотите понять столбцы в выводе -G field
, они описаны здесь:tshark -Дамп и анализ сетевого трафика:
* Header Fields
* -------------
* Field 1 = 'F'
* Field 2 = descriptive field name
* Field 3 = field abbreviation
* Field 4 = type (textual representation of the ftenum type)
* Field 5 = parent protocol abbreviation
* Field 6 = base for display (for integer types); "parent bitfield width" for FT_BOOLEAN
* Field 7 = bitmask: format: hex: 0x....
* Field 8 = blurb describing field
Вы можете использовать это grep
для фильтрации вывода, если вы смелы:
$ tshark -G fields | grep -P '\s+(ip.src|frame.len)\s+'
F Frame length on the wire frame.len FT_UINT32 frame BASE_DEC 0x0
F Source ip.src FT_IPv4 ip 0x0