LINUX.ORG.RU

Используй, например, 8.8.8.8. С доменным именем у тебя куча времени на безуспешную попытку отрезовить его в адрес уходит.

Tanger ★★★★★
()
Ответ на: комментарий от system-root

Так ТС хочет проверить наличие интернета, а не рабочего DNS. Я не знаю опций, у ping, которые выставляют timeout на DNS запрос. Вот пример с нерабочим DNS:

$ time ping -c 1 -w 1 google.com
ping: google.com: Temporary failure in name resolution

real	0m20.024s
user	0m0.001s
sys	0m0.004s




$ time ping -c 1 -w 1 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=120 time=8.32 ms

--- 8.8.8.8 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 8.329/8.329/8.329/0.000 ms

real	0m0.010s
user	0m0.001s
sys	0m0.001s
Tanger ★★★★★
()
Ответ на: комментарий от Tanger

проверить наличие интернета, а не рабочего DNS

если меня сходу спросить как проверить наличие интернета, я наверное на academia.edu полезу за статьями на тему «что такое наличие интернета», т.к. у меня нет ответа. какое-то абстрактное понятие.
лучше спросить у него, что под этим имеет в виду.

system-root ★★★★★
()
Последнее исправление: system-root (всего исправлений: 1)
Ответ на: комментарий от system-root

Если человеку нужно автоматизированно проверять наличие интеренета - он должен понимать, что он хочет проверить.

Если ему нужно проверять работоспособность DNS (а у него в этом нет необходимости), то он может либо поставить себе как DNS 8.8.8.8 и довольствоваться наличием пингов, либо _отдельно_ запускать nslookup/dig с адекватным таймаутом.

Tanger ★★★★★
()

ping -q -w 1 -c 1 google.com

Я бы изменил на ping -q -w 1 -c 1 -i 0.2 8.8.8.8, чтобы уменьшить число ложных срабатываний.

-c при включенном -w означает не то же, что без -w:

-w deadline
Specify a timeout, in seconds, before ping exits regardless of how many packets have been sent or received. In this case ping does not stop after count packet are sent, it
waits either for deadline expire or until count probes are answered or for some error notification from network.

Tanger ★★★★★
()

всем спасибо!

Xwo
() автор топика

отключи резолв в авахи при неудаче через днс

anonymous
()
Ответ на: комментарий от system-root

Картинка будет выглядеть как «интернет есть, но интернета нет». Пусть установит кеширующий днс сервис, чтобы минимизировать ущерб. Нормальный днс не лежит дольше пары минут.

anonymous
()
Ответ на: комментарий от system-root

1) проверить наличие в системе сетевых интерфейсов помимо loopback

2) для каждого из обнаруженных интерфейсов проверить, что интерфейсу назначен адрес и есть записи в таблице маршрутизации

3) попинговать default gateway

4) попинговать DNS сервер из resolv.conf

5) wget-нуть страничку оплаты провайдера

6) wget-нуть основной сайт провайдера

7) попинговать какой-нибудь сервер в пределах населенного пункта, но хостящийся НЕ у твоего провайдера

6) wget-нуть 5-6 крупных популярных сайтов

.. список можно продолжать и расширять :)

Harald ★★★★★
()
Ответ на: комментарий от anonymous

наличие интернета это векторная величина!

Harald ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.