Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /bin/bash
- set -o posix
- set -o nounset
- shopt -s extglob # allow extended pattern matching operators
- # Executables
- # ~~~~~~~~~~~
- # So can change to suit OS variant
- nslookup='/usr/bin/nslookup'
- sort='/usr/bin/sort'
- #--------------------------
- # Name: test_servers
- # Purpose: tests response times of list of servers
- # $1 - list of servers
- # $2 - results heading
- #--------------------------
- function test_servers {
- local oIFS out secs server
- out=''
- for server in $1
- do
- echo -n '.'
- # DEVELOPMENT NOTE: -timeout=5 in command below does not seem to be effective; default 15 timeout operates
- secs="$(/usr/bin/time -f '%e' $nslookup '-timeout=5' 'www.google.com' $server 2>&1 1>/dev/null)"
- out="$out
- $secs $server"
- done
- out="$(echo "$out" | $sort --general-numeric-sort)"
- echo
- echo "$2"
- oIFS="$IFS"
- IFS='
- '
- for buf in $out
- do
- IFS="$oIFS"
- IP_address="${buf#* }"
- response_time="${buf% *}"
- if [[ ${response_time%.*} -lt 5 ]]; then
- response_time="$response_time seconds"
- else
- response_time='Timed out'
- fi
- printf '%16s %s\n' "$IP_address" "$response_time"
- done
- return 0
- } # end of function test_servers
- BSNL_servers='
- 61.1.96.69
- 61.1.96.71
- 61.1.96.72
- 218.248.240.23
- 218.248.240.135
- 218.248.240.180
- 218.248.240.181
- 218.248.240.208
- 218.248.255.139
- 218.248.255.145
- 218.248.255.146
- '
- #echo 'DEBUG: setting small BSNL DNS server list'
- #BSNL_servers='
- #218.248.240.23
- #218.248.240.208
- #'
- OpenDNS_servers='
- 208.67.222.222
- 208.67.220.220
- '
- Level3_servers='
- 4.2.2.1
- 4.2.2.2
- 4.2.2.3
- 4.2.2.4
- '
- test_servers "$BSNL_servers" 'Known BSNL DNS servers with query response times'
- test_servers "$OpenDNS_servers" 'Known OpenDNS servers with query response times'
- test_servers "$Level3_servers" 'Known Level3 servers with query response times'
- echo '
- Here'"'"'s the current /etc/resolv.conf:'
- cat '/etc/resolv.conf'
- \exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement