@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; }

Может есть более элегантное и более лучшее решение?
  • Вопрос задан
  • 153 просмотра
Решения вопроса 1
Пригласить эксперта
Ответы на вопрос 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
Похожие вопросы