57 lines
1.7 KiB
Bash
57 lines
1.7 KiB
Bash
#!/usr/bin/env bash
|
|
# execute testdns.sh
|
|
command -v bc > /dev/null || { echo "bc was not found. Installing..."; sudo apt install -y bc; }
|
|
{ command -v drill > /dev/null && dig=drill; } || { command -v dig > /dev/null && dig=dig; } || { echo "dig was not found. Installing..."; sudo apt install -y dnsutils; }
|
|
NAMESERVERS=`cat /etc/resolv.conf | grep ^nameserver | cut -d " " -f 2 | sed 's/\(.*\)/&#&/'`
|
|
PROVIDERS="
|
|
1.1.1.1#cloudflare
|
|
4.2.2.1#level3
|
|
8.8.8.8#google
|
|
9.9.9.9#quad9
|
|
80.80.81.81#freenom
|
|
208.67.222.123#opendns
|
|
199.85.126.20#norton
|
|
185.228.168.168#cleanbrowsing
|
|
185.44.24.27#emartinez(MU)
|
|
156.154.70.1#neustar
|
|
8.26.56.26#comodo
|
|
192.168.1.1#192.168.1.1
|
|
94.140.14.14#adguard
|
|
77.88.8.8#yandex
|
|
64.6.64.6#verisign
|
|
185.14.39.135#Networklan(MU)
|
|
216.146.35.35#dyn-dns
|
|
94.140.15.15#adguard2
|
|
193.58.251.251#sky-dns
|
|
"
|
|
# Dominios test.
|
|
DOMAINS2TEST="www.google.com amazon.com facebook.com www.youtube.com www.reddit.com wikipedia.org twitter.com gmail.com www.google.es whatsapp.com forocoches.es"
|
|
totaldomains=0
|
|
printf "%-18s" ""
|
|
for d in $DOMAINS2TEST; do
|
|
totaldomains=$((totaldomains + 1))
|
|
printf "%-8s" "test$totaldomains"
|
|
done
|
|
printf "%-8s" "Average"
|
|
echo ""
|
|
for p in $NAMESERVERS $PROVIDERS; do
|
|
pip=${p%%#*}
|
|
pname=${p##*#}
|
|
ftime=0
|
|
printf "%-18s" "$pname"
|
|
for d in $DOMAINS2TEST; do
|
|
ttime=`$dig +tries=1 +time=2 +stats @$pip $d |grep "Query time:" | cut -d : -f 2- | cut -d " " -f 2`
|
|
if [ -z "$ttime" ]; then
|
|
#let's have time out be 1s = 1000ms
|
|
ttime=1000
|
|
elif [ "x$ttime" = "x0" ]; then
|
|
ttime=1
|
|
fi
|
|
printf "%-8s" "$ttime ms"
|
|
ftime=$((ftime + ttime))
|
|
done
|
|
avg=`bc -lq <<< "scale=2; $ftime/$totaldomains"`
|
|
echo " $avg"
|
|
done
|
|
exit 0;
|