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 ..