home *** CD-ROM | disk | FTP | other *** search
/ linuxmafia.com 2016 / linuxmafia.com.tar / linuxmafia.com / pub / linux / network / dnscheckserial < prev    next >
Text File  |  2011-05-22  |  1KB  |  41 lines

  1. #! /bin/sh
  2. #
  3. # dnscheckserial [@seed nameserver] <domain>
  4. #
  5. # queries for listed authoritative nameservers for a domain
  6. # then iterates through them quering the SOA record and
  7. # parsing out the serial number.
  8. #
  9. # creates report on all serial numbers
  10. #
  11. # Mirrored from http://lanning.cc/pub/dnscheckserial, with credit to
  12. # Robert Hajime Lanning. 
  13.  
  14. # default query
  15. DOMAIN="."
  16.  
  17. # parse arguments
  18. while [ "${#}" -gt "0" ]; do
  19.    if [ "${1:0:1}" = "@" ]; then
  20.       SEED="${1}"
  21.    else
  22.       DOMAIN="${1}"
  23.    fi
  24.    shift
  25. done
  26.  
  27. # report header
  28. echo "Domain: ${DOMAIN}"
  29. echo "Serial #        NameServer"
  30. echo "-------------   --------------"
  31.  
  32. # retrieve list of authoritative nameservers and iterate through them
  33. # retrieving SOA record from each and listing the serial number
  34. dig ${SEED} ${DOMAIN} ns +short | sort | uniq |\
  35. while read SERVER; do
  36.    SERIAL="`dig \@${SERVER} ${DOMAIN} soa +short +norecurse | sed -e 's/^;; connection timed out.*$/TIMEOUT/' -e '/^;.*$/d' -e '/^$/d' | cut -d' ' -f3`                  "
  37.    SERIAL=${SERIAL:-NXDOMAIN}
  38.    echo "${SERIAL:0:13}   ${SERVER}"
  39. done
  40.  
  41.