É 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.