
Using_nslookup=True
Using_hostip=False
VerTiempoRespuesta=True

if [ "$1" != "" ];then DomainTesting=$1; else DomainTesting=google.com; fi

echo;echo
echo " -- Ten presente que si usas stubby, a ojos de dnsmasq es un unico servidor pero puede estar usando varios y darte respuestas diferentes segun el que use en ese momento --"
echo;echo

if [ "$VerTiempoRespuesta" == "True" ];then Time="time"; else Time=""; fi

if [ "$Using_nslookup" == "True" ];then
        echo
        echo "-------------------- Test dns server with nslookup --------------------"
        echo
        echo "Test al dns que usa el sistema router (/etc/resolv.conf generado por el interfaz wan con 'option dns' en /etc/config/network)"
        $Time nslookup $DomainTesting | grep -e "name" -e "Address" | sed 's/Address:   /\nServer:    /' | sed 's/Address / Address /'
        echo
        echo "Test servicio dnsmasq  (Servidor DNS que sirve a los clientes de la red)"
        $Time nslookup $DomainTesting 127.0.0.1#53 | grep -e "name" -e "Address" | sed 's/Address:      /\nServer:    /' | sed 's/Address / Address /'
        echo
        echo "Test a lista de servidores que usa y consultara dnsmasq"

        # Opcion1
          grep -e "list server '[0-9]" -e "list doh_backup_server '[0-9]" /etc/config/dhcp | grep -v -e "#list server" -e "#doh_backup_server"  | cut -d "'" -f 2 | xargs -n 1 $Time nslookup $DomainTesting 2>&1 | grep -e "name" -e "Address" -e real | sed 's/Address:	/\nServer:    /' | sed 's/real	/ time_real: /' | sed 's/Address / Address /'
        # grep -e "list server '[0-9]" -e "list doh_backup_server '[0-9]" /etc/config/dhcp | grep -v -e "#list server" -e "#doh_backup_server"  | cut -d "'" -f 2 | xargs -n 1 time  nslookup google.com 2>&1 | grep -e "name" -e "Address" -e real | sed 's/Address:	/\nServer:    /' | sed 's/real	/ time_real: /' | sed 's/Address / Address /'              # Para test directo por consola

        # Opcion2
        # grep -e "list server '[0-9]" -e "list doh_backup_server '[0-9]" /etc/config/dhcp | grep -v -e "#list server" -e "#doh_backup_server"  | cut -d "'" -f 2 | awk -v ttt="$Time" -v ddd="$DomainTesting" '{ print "echo;"ttt" nslookup "ddd" "$1" | grep -e \"name\" -e \"Address\" | sed \"s/Address:	/ Server:  /\" | sed \"s/Address /  Address /\"  "}' | sh
        # grep -e "list server '[0-9]" -e "list doh_backup_server '[0-9]" /etc/config/dhcp | grep -v -e "#list server" -e "#doh_backup_server"  | cut -d "'" -f 2 | awk '{ print "echo;time nslookup google.com "$1" | grep -e \"name\" -e \"Address\" | sed \"s/Address:/Server:/\" | sed \"s/Address / Address /\"  "}'  | sh      # Para test directo por consola

        # https://stackoverflow.com/questions/52663711/how-should-i-interpret-a-cant-find-from-nslookup-inside-a-docker-busybox-c
        # https://www.reddit.com/r/openwrt/comments/8x85of/dns_issues/

        echo;echo
fi

if [ "$Using_hostip" == "True" ];then
        echo
        echo "-------------------- Test dns server With hostip --------------------"
        echo
        echo "Test al dns que usa el sistema router (/etc/resolv.conf generado por el interfaz wan con 'option dns' en /etc/config/network)"
        $Time hostip $DomainTesting
        echo
        echo "Test servicio dnsmasq  (Servidor DNS que sirve a los clientes de la red)"
        $Time hostip $DomainTesting -r 127.0.0.1:53
        echo
        echo "Test a lista de servidores que usa y consultara dnsmasq"
        grep -e "list server '[0-9]" -e "list doh_backup_server '[0-9]" /etc/config/dhcp | grep -v -e "#list server" -e "#doh_backup_server"  | cut -d "'" -f 2 | tr "#" ":" | xargs -n 1 $Time hostip $DomainTesting -r
        echo;echo
fi

