Как проверить, доступно ли подключение к Интернету через терминал

Я пытаюсь написать сценарий Bash, который знает о подключении к интернету.

Как я могу этого достичь?

например:

if (something that checks internet connection);then
curl -o new someurl
else 
exit 1
28
задан slhck
29.04.2023 11:13 Количество просмотров материала 3180
Распечатать страницу

2 ответа

попробуйте использовать curl команда и проверка состояния выхода в if заявление.

curl -D- -o /dev/null -s http://www.google.com
if [[ $? == 0 ]]; then
  foocode
else
  exit 1
fi
3
отвечен mikepawlak408 2023-04-30 19:01

я использовал snmp, когда у меня был маршрутизатор, который поддерживает его, чтобы получить IP, назначенный интерфейсу Wan (.253 был маршрутизатор addr):

IP=$(/usr/bin/snmpwalk -v2c -Ov -cpublic 192.168.1.253 \
          IP-MIB::ipAdEntAddr 2>/dev/null \
          | /bin/grep -v "0.0.0.0\|127.0.0.1\|192.168.1.253")

или, может быть, вы могли бы webscarp это со страниц статистики маршрутизатора с curl.

В настоящее время вместо этого я использую для проверки / получения ip от службы, которую я использую для динамического dns:

IP=$(curl -s 'http://checkip.dyndns.org' | sed 's/.*Current IP Address: \([0-9\.]*\).*//g')

и затем:

if [ "$IP" != "" ] && [ "$IP" != "0.0.0.0" ]; then
   # connected
1
отвечен Alex 2023-04-30 21:18

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

bash
internet-connection
linux
terminal
unix
Вверх