SH para teste de ping para DNS

É possível fazer ping em um DNS em um script shell usando o comando ping com o nome do DNS como argumento. No entanto, vale ressaltar que o comando ping normalmente requer um endereço IP como argumento, não um nome de domínio.

Para contornar isso, você pode usar o comando host para obter o endereço IP correspondente a um nome de domínio e, em seguida, usar o comando ping com o endereço IP obtido. Aqui está um exemplo de como fazer isso em um script shell:

#!/bin/bash

# DNS para verificar o ping
dns=$1
validador=$2

# Obter o endereço IP correspondente ao DNS
ip=$(host -t A $dns | awk '/has address/ { print $4 }')

# Verificar o ping
ping -c 4 $ip > /dev/null

# Verificar o código de saída do comando ping
if [ $? -eq 0 ]; then
  echo "O DNS $dns ($ip) está respondendo."
else
  echo "O DNS $dns ($ip) não está respondendo."
fi

Neste exemplo, usamos o comando host para obter o endereço IP correspondente ao DNS especificado. Em seguida, usamos awk para extrair o endereço IP da saída do comando host e armazená-lo na variável ip. Depois disso, fazemos ping no endereço IP usando o comando ping e verificamos o código de saída para determinar se o DNS está respondendo ou não.

Lembre-se de salvar o script em um arquivo e executá-lo passando o nome do DNS como argumento, por exemplo:

./script.sh example.com exemplo

Certifique-se de ter permissões de execução no arquivo do script (chmod +x script.sh) antes de executá-lo.

Rolar para cima