препятствуйте тому, чтобы вывод ping показал (усеченный) вместо времени =

препятствуйте тому, чтобы вывод ping показал (truncated) вместо time=##.# ms

Проблема нежелательного выходного формата происходит явно из-за теста, который я запускаю: определение порога потери пакетов размером пакета. Мой вопрос, как я могу просмотреть время (вместо "усеченного") так или иначе?

Желаемый выходной формат:

user@desktop:~$ ping -c 10 -s 1372 -v hostname.com
PING hostname.com (X.X.X.X) 1372(1400) bytes of data.
1380 bytes from hostname.com (X.X.X.X): icmp_req=1 ttl=242 time=82.8 ms
1380 bytes from hostname.com (X.X.X.X): icmp_req=2 ttl=242 time=82.7 ms

--- hostname.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 82.826/83.038/83.250/0.212 ms

Нежелательный выходной формат:

user@desktop:~$ ping -c 10 -s 1373 -v hostname.com
PING hostname.com (X.X.X.X) 1373(1401) bytes of data.
1376 bytes from hostname.com (X.X.X.X): icmp_req=1 ttl=242 (truncated)
1376 bytes from hostname.com (X.X.X.X): icmp_req=2 ttl=242 (truncated)

--- hostname.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 82.997/83.010/83.023/0.013 ms

В интересах полноты, также показывая случайную ошибку.

user@desktop:~$ ping -c 2 -s 1373 -v hostname.com
PING hostname.com (X.X.X.X) 1373(1401) bytes of data.
From hostname2.com (Y.Y.Y.Y) icmp_seq=1 Frag needed and DF set (mtu = 1400)
1376 bytes from hostname.com (X.X.X.X): icmp_req=2 ttl=242 (truncated)

--- hostname.com ping statistics ---
2 packets transmitted, 1 received, +1 errors, 50% packet loss, time 999ms
rtt min/avg/max/mdev = 82.937/82.937/82.937/0.000 ms
1
задан 18 September 2017 в 19:59

1 ответ

Я полагаю, что это не возможно.

, Учитывая мое чтение исходный код ping, если возвращенный размер данных меньше, чем отправленный размер данных, он будет всегда печатать это.

Мое предположение - то, что время просматривается как недопустимое или бесполезное из-за данных, являющихся усеченным.

Для разъяснения: условное выражение на строке, связанной выше,

if (cc < datalen+8) {

cc, представляет число полученных байтов, и datalen число, которому Вы предоставили -s опция. Для этого это проверяет, является ли размер ответа меньше, чем отправленный размер (1373 в Вашем 2-м примере).

Другой вещью, которую я просто заметил, является синхронизация, вычисляется в очень следующем блоке после того, который обнаруживает усеченные данные. После строки, которая печатает (truncated) текст, функциональные возвраты, таким образом, блок синхронизации никогда не работает.

Едва ли ответ, решая Вашу проблему, но объяснение того, почему это не может быть сделано.
ответ того, как не показать (truncated): сделайте удаленный хост для не усечения пакетов.

1
ответ дан 7 December 2019 в 15:29

Другие вопросы по тегам:

Похожие вопросы: