Оказалось все очень просто.ping <ip|url> -c <packets_count>
где:<ip|url>
- IP или URL адресip
- IP-адрес (например 8.8.8.8
или 192.168.0.1
)url
- URL-адрес (например google.com)<packets_count>
- количество отправленных пакетов
В следующем примере мы пингуем google.com
:ping google.com -c 3
Вывод команды приводить не буду для экономии места, кому нужно, смотрите на PasteBin
Можно пропинговать и по IP, например, локальный роутер:ping 192.168.0.1 -c 3
Вывод, опять же на PasteBin
Внимание! Количество отправленных пакетов (-с <число>
), если вы используете ping
в скрипте bash нужно указать обязательно, иначе команда ping
никогда не прекратит свою работу и завесит скрипт, в отличии от команды ping
в Windows (она по умолчанию посылает 5 пакетов и прекращает работу).
Естественно, для анализа работы ping в скрипте, нам потребуются коды возврата.
К сожалению, в официальном man для команды
ping
их, почему-то забыли указать.0 - Success (хоть один из пакетов дошел до адреса)
1 - No reply (не один из пакетов до пингуемого адреса не дошел)
2 - Other error (другая ошибка, в большинстве случаев - "сеть недоступна").
На всякий случай
Если произошла ошибка с кодом
2
, то команда ping
выводит на stderr
сообщение об ошибке, например:ping 8.8.8.8 -c 3
connect: Network is unreachable
ping
является полуинтерактивной командой, и показывает параметры отправленных пакетов (см. на PasteBin), если это не нужно, можно отключить вывод стандартным способом, перенаправив вывод команды ping
из stdin
и stderr
в /dev/null
, например:ping 8.8.8.8 -c 3 >/dev/null 2>/dev/null
где:
>/dev/null
- перенаправление stdin
в нуль-устройство2>/dev/null
- перенаправление stderr
в нуль-устройствоПростейшее использование команды
ping
в скрипте:#!/bin/bash
#testping
# $1 - IP or URL address
ping $1 -c 3 >/dev/null 2>/dev/null
if [ $? -eq 0 ]; then
echo "Pinging!"
else
echo "Not pinging!"
fi
Копия на PasteBin
smallwolfie@wolfschanze:~/nettest$ ./testping 8.8.8.8
Pinging!
smallwolfie@wolfschanze:~/nettest$ ./testping 666.666.666.666
Not pinging!
smallwolfie@wolfschanze:~/nettest$ ./testping 192.168.0.55
Not pinging!
smallwolfie@wolfschanze:~/nettest$ ./testping example.org
Pinging!
Это репост с сайта http://tolik-punkoff.com
Оригинал: https://tolik-punkoff.com/2022/10/06/lin