10 СПОСОБОВ ИСПОЛЬЗОВАНИЯ КОМАНДЫ "PING"

Все используют эту команду, но, наверно, не все знают, насколько она может быть функциональна. Я вот однажды призадумался, почему, например, в Windows отправляются всего четыре пакета, а в Linux системах по умолчанию дофигилиард, из-за чего приходится каждый раз закрывать терминал. (Если кто знает, как прервать этот процесс иначе, пожалуйста, отпишитесь где-нибудь внизу). Однажды мне это надоело, я решил поискать решение, упрощающее жизнь и наткнулся на такую замечательную статью:

Пример 1. Изменение интервала времени между отправкой пакетов

По умолчанию пакеты посылаются с промежутком в одну секунду. Вы можете изменить это интервал с помощью опции -i.

Увеличение интервала

Пример: Ждем 5 секунд перед отправкой следующего пакета.

$ ping -i 5 IP

Уменьшаем интервал

Пример: Ждем 0.1 секунду перед отправкой следующего пакета.

# ping -i 0.1 IP

Заметка: Только суперпользователь может указывать интервал меньше 0.2 секунды. В противном случае вы увидите такое сообщение.

$ ping -i 0.1 127.0.0.1  
PING 0 (127.0.0.1) 56(84) bytes of data.  
ping: cannot flood; minimal interval, allowed for user, is 200ms

Пример 2. Проверка локального интерфейса

Перед проверкой удаленного хоста сначала рекомендуется проверить все ли в порядке с вашим локальным интерфейсом. Для этого можно использовать следующие 3 метода.

Пингуем ноль (0)

Это самый простой и быстрый способ:

$ ping 0  
PING 0 (127.0.0.1) 56(84) bytes of data.  
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.024 ms  
^C

Пингуем по имени

$ ping localhost  
PING localhost (127.0.0.1) 56(84) bytes of data.  
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.051 ms  
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.055 ms  
^C  
--- localhost ping statistics ---  
2 packets transmitted, 2 received, 0% packet loss, time 999ms  
rtt min/avg/max/mdev = 0.051/0.053/0.055/0.002 ms

Пингуем по IP

$ ping 127.0.0.1
2 packets transmitted, 2 received, <strong>0% packet loss,</strong> time 999ms  rtt min/avg/max/mdev = 0.051/0.053/0.055/0.002 ms

Не должно быть никаких потерь пакетов.

Пример 3. Послать N пакетов и завершить работу

Для автоматического завершения пинга после отправки указанного вами числа пакетов исползуется опция -c.

В следующем примере мы отправим 5 пакетов.

$ ping -c 5 google.com  
PING google.com (74.125.45.100) 56(84) bytes of data.  
64 bytes from yx-in-f100.google.com (74.125.45.100): icmp_seq=1 ttl=44 time=731 ms  
64 bytes from yx-in-f100.google.com (74.125.45.100): icmp_seq=2 ttl=44 time=777 ms  
64 bytes from yx-in-f100.google.com (74.125.45.100): icmp_seq=3 ttl=44 time=838 ms  
64 bytes from yx-in-f100.google.com (74.125.45.100): icmp_seq=4 ttl=44 time=976 ms  
64 bytes from yx-in-f100.google.com (74.125.45.100): icmp_seq=5 ttl=44 time=1071 ms    
--- google.com ping statistics ---  
5 packets transmitted, 5 received, 0% packet loss, time 4216ms  
rtt min/avg/max/mdev = 731.039/879.129/1071.050/126.625 ms

Пример 4. Версия команды ping

С помощью опции -V мы можем посмотреть текущую версию команды.

$ ping -V  
ping utility, iputils-sss20071127

Пример 5. Флуд в сети

Суперпользователь может послать тысячи и более пакетов в короткие сроки с помощью опции -f.

Как показано ниже, ping -f послал более чем 400,000 пакетов за несколько секунд.

# ping -f localhost  
PING localhost (127.0.0.1) 56(84) bytes of data.  
.^C 
 --- localhost ping statistics ---  <strong>
427412 packets transmitted</strong>, 427412 received, 0% packet loss, time 10941ms  
rtt min/avg/max/mdev = 0.003/0.004/1.004/0.002 ms, ipg/ewma 0.025/0.004 ms

Пример 6. Звуковой сигнал

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

$ ping -a IP

Пример 7. Печатать только статистику выполнения команды

С помощью опции -q можно пропустить ответы удаленного хоста и вывести сразу полученную статистику.

$ ping -c 5 -q 127.0.0.1  
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.    
--- 127.0.0.1 ping statistics ---  
5 packets transmitted, 5 received, 0% packet loss, time 3998ms  
rtt min/avg/max/mdev = 0.047/0.053/0.061/0.009 ms

Пример 8. Изменение размера пакета

Вы можете изменить размер посылаемого пакета используя опцию -s.

Пример: Изменим размер пакета с 56 до 100.

$ ping -s 100 localhost  
PING localhost (127.0.0.1) 100(128) bytes of data.  
108 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.022 ms  
108 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.021 ms  
108 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.020 ms  
^C  
--- localhost ping statistics ---  
3 packets transmitted, 3 received, 0% packet loss, time 1998ms  
rtt min/avg/max/mdev = 0.020/0.021/0.022/0.000 ms

Пример 9. Длительность выполнения команды

С помощью опции -w мы можем указать время выполнения команды в секундах.

В следующем примере мы будем пинговать локалхост в течение 5-ти секунд.

$ ping -w 5 localhost

Заметка: В случае одновременного использования опций -w и -c завершение работы утилиты наступит в момент срабатывания первого ограничения.

Пример 10. Краткая статистика с SIGQUIT

Не прерывая команду пинг, можно посмотреть статистику выполнения. Для этого нужна нажать CTRL + | 

$ ping -w 100 localhost  
PING localhost (127.0.0.1) 56(84) bytes of data.  
64 bytes from localhost (127.0.0.1): icmp_seq=10 ttl=64 time=0.021 ms  
64 bytes from localhost (127.0.0.1): icmp_seq=11 ttl=64 time=0.022 ms  
<strong>11/11 packets, 0% loss, min/avg/ewma/max = 0.020/0.022/0.022/0.024 ms  </strong>
64 bytes from localhost (127.0.0.1): icmp_seq=12 ttl=64 time=0.021 ms  
64 bytes from localhost (127.0.0.1): icmp_seq=13 ttl=64 time=0.022 ms  
64 bytes from localhost (127.0.0.1): icmp_seq=14 ttl=64 time=0.021 ms  
64 bytes from localhost (127.0.0.1): icmp_seq=15 ttl=64 time=0.021 ms  <strong>
19/19 packets, 0% loss, min/avg/ewma/max = 0.020/0.022/0.022/0.024 ms  </strong>
64 bytes from localhost (127.0.0.1): icmp_seq=31 ttl=64 time=0.022 ms  
64 bytes from localhost (127.0.0.1): icmp_seq=32 ttl=64 time=0.022 ms  <strong>
32/32 packets, 0% loss, min/avg/ewma/max = 0.020/0.022/0.022/0.027 ms  </strong>
64 bytes from localhost (127.0.0.1): icmp_seq=33 ttl=64 time=0.023 ms  ..