Оказалось все очень просто.
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
Внимание! Количество отправленных пакетов (-с <число>), если вы используете 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
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!
![[info]](http://tolik-punkoff.com/wp-content/plugins/lj-ljr-users/img/userinfo-ljr.gif)





