@kkoshakk

Как проверить через Bash есть Интернет или нет?

Мой вариант такой:
#Check Internet Connection
echo -n "Checking Internet Connection..."
ERR=`ping 8.8.8.8 -c 5 2>&1 > /dev/null` && echo "[ OK ]" || { echo "ERROR" && exit; }

Может есть более элегантное и более лучшее решение?
  • Вопрос задан
  • 184 просмотра
Решения вопроса 1
majetree
@majetree
fping 8.8.8.8

fping -r 1 -a -q -g 192.168.1.1/24
так например можно очень быстро узнать какие хосты пингуются в локальной сети(192.168.1.1/24)
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
@pfg21
ex-турист
результат работы предыдщей команды сохраняется в переменную окружения $?

т.е. после команды
ping -c 1 8.8.8.8
значение $? будет равно 0

а после пинга несуществующего адреса (иммитация неработающего тырнета)
ping -c 1 192.168.250.250
значение $? будет равно 1
значение $? сохранить в другую переменную или подставить в if
ибо оно "быстро затрётся" результатом выполнения последующих команд.
Ответ написан
CityCat4
@CityCat4
Жил да был CityCat за углом...
Сначала нужно определиться что такое "есть Интернет". Есть соединение с шлюзом провайдера? С точкой обмена трафика уровня города? С сервером гугла? С сервером котиков, трубой, steam, танками? Наличие связи с одним вовсе не означает наличия связи с другими :) (за исключением роутера провайдера - отсутствие с ним связи есть отсутствие инета вообще).
Ответ написан
@kkoshakk
А можно ли использовать NetworkManager для проверки отсутствия соединения с интернет?
Просто ping, по большому счету, это только проверка доступности определенного хоста...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы