Рейтинг:0

tshark -T fields: любой способ распечатать интерпретируемые значения числовых полей?

флаг cn
frr

T-shark — это мощный аналог Wireshark, инструмента для захвата пакетов, работающий с командной строкой.

На базовом уровне детализации вы получаете одну текстовую строку на пакет, содержащую лишь некоторую основную информацию. Пример:

tshark -n -i eth1

Это дает:

1 0.000000000 ec:46:70:00:fc:ad – 01:1b:19:00:00:00 PTPv2 124 Объявить сообщение
2 0.364764469 00:60:e9:2e:bd:f8 - 01:80:c2:00:00:0e PTPv2 68 Path_Delay_Req Сообщение
3 0.364796580 00:0b:ab:45:b4:d0 â 01:80:c2:00:00:0e PTPv2 68 Path_Delay_Resp Сообщение
4 0.364830284 00:0b:ab:45:b4:d0 â 01:80:c2:00:00:0e PTPv2 68 Path_Delay_Resp_Follow_Up Message
5 0.704678057 00:0b:ab:45:b4:d0 ≈ 01:80:c2:00:00:0e PTPv2 68 Path_Delay_Req Сообщение
6 0.720285509 00:60:e9:2e:bd:f8 – 01:80:c2:00:00:0e PTPv2 68 Path_Delay_Resp Сообщение
7 0.729102466 00:60:e9:2e:bd:f8 â 01:80:c2:00:00:0e PTPv2 68 Path_Delay_Resp_Follow_Up Message
8 0.757962110 ec:46:70:00:fc:ad – 01:1b:19:00:00:00 PTPv2 60 Сообщение синхронизации
9 0.767993002 ec:46:70:00:fc:ad – 01:1b:19:00:00:00 PTPv2 60 Follow_Up Message
10 1.000119946 ec:46:70:00:fc:ad – 01:1b:19:00:00:00 PTPv2 124 Объявление сообщения

Если вы вызываете tshark с аргументом -V, он становится многословным = анализирует содержимое пакетов. Например. для PTP я получаю, может быть, две страницы расчлененного списка на пакет. Короткий фрагмент, например:

Протокол точного времени (IEEE1588)
    0000 .... = транспортспецифический: 0x0
        ...0 .... = соответствие 802.1as: False
    .... 1011 = messageId: Объявить сообщение (0xb)
    .... 0010 = версияPTP:2
    длина сообщения: 110
    номер поддомена: 0
    флаги: 0x003c
        0... .... .... .... = PTP_SECURITY: False
        .0.. .... .... .... = Профиль PTP Конкретный 2: False
        ..0. .... .... .... = конкретный профиль PTP 1: False
        .... .0.. .... .... = PTP_UNICAST: False
        .... ..0. .... .... = PTP_TWO_STEP: Ложь

...и т.д. Подробный дамп действительно является обоями.

Вы также можете выбрать отдельные поля для печати, используя аргументы -T и -e. Пример:

tshark -i eth1 -T fields -e ptp.v2.messageid -e ptp.v2.sequenceid -e ptp.v2.correction.ns

Это может дать:

2       2087    0
3       2087    0
10      2087    0
0       14206   13255
8       14206   0

Обратите внимание, что поле messageId, первый столбец выше, печатается числовым (и десятичным). Обратите внимание, что это конкретное поле кодирует «тип сообщения». Например, 0xB кодирует сообщение Announce Message. Wireshark/T-shark знают, как это интерпретировать, и дают вам текстовое описание в расширенном подробном выводе. Кроме того, в компактном выводе по умолчанию (одна строка на пакет) вы также интерпретируете этот messageId. Wireshark с графическим интерфейсом имеет столбец Info в сетке, который содержит эту текстовую интерпретацию типа сообщения.

Только...как мне запросить эту текстовую интерпретацию ptp.v2.messageid при использовании настраиваемого вывода «полей» с использованием -T и -e ? Либо интерпретация, соответствующая конкретному полю ptp.v2.messageid, либо производное поле «Информация». Там в любом случае?

Я использую свои конкретные примеры, но вопрос, возможно, шире = как запросить у tshark текстовую интерпретацию конкретного поля с помощью -T/-e.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.