Como verificar se a conexão com a internet está disponível via Terminal

-1

Estou tentando escrever um script Bash ciente da conectividade com a Internet.

Como posso conseguir isso?

Por exemplo:

if (something that checks internet connection);then
curl -o new someurl
else 
exit 1
    
por The KingMaker 03.02.2013 / 09:40

2 respostas

3

Tente usar o comando curl e verificar o status de saída em uma instrução if .

curl -D- -o /dev/null -s http://www.google.com
if [[ $? == 0 ]]; then
  foocode
else
  exit 1
fi
    
por 03.02.2013 / 10:15
1

Eu estava usando o snmp quando tinha um roteador que o suportava para obter o ip atribuído à interface Wan (o .253 era o endereço do roteador):

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")

Ou talvez você possa webscarp nas páginas de estatísticas do roteador com curl .

Atualmente, em vez disso, uso para verificar / obter o ip do serviço que uso para o dns dinâmico:

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

e depois:

if [ "$IP" != "" ] && [ "$IP" != "0.0.0.0" ]; then
   # connected
    
por 30.07.2013 / 15:32