#! /bin/sh if ! [ $2 ] || ! ( echo $2 | grep '\.' >/dev/null ) then echo 'Usage: dns_check_address DOMAIN SERVER' 1>&2 exit 255 fi A=$( dig +trace +short IN A $1 | sed ' /^A / { s/^A // s/ .*// p } d' ) if [ "$A" = "" ] then echo "Error: no such domain $1" exit 255 fi B=$( echo $2 | grep '^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$' || { dig +trace +short IN A $2 | sed ' /^A / { s/^A // s/ .*// p } d' } ) if [ "$B" = "" ] then echo "Error: no such server $2" exit 255 fi for C in $A do if ! ( echo "$B" | grep $( echo $C | sed 's/\./\\./g' ) 1>/dev/null ) then for C in $B do if ! ( echo "$A" | grep $( echo $C | sed 's/\./\\./g' ) 1>/dev/null ) then echo "Error: domain $1 is not at server $2" exit 1 fi done fi done echo "Domain $1 is at server $2" exit 0