Сценарий использует команду dig, рассматривавшуюся в главе 3, для выполнения поиска по DNS с фильтрованием кэша и локального кэширующего DNS-сервера. Одной из особенностей этого сценария является использование им собственного имени для указания типа записи DNS, по которому ведется поиск. Если он назван
soa, то поиск выполняется по записям DNS S0A. Особый случай представляет имя ptr, преобразующее IPv4-aflpec в верную форму i n-addr. агра для проведения самого поиска. Вы должны сделать копии этого сценария с именами, соответствующи-ми всем обычным типам записей DNS, поиск в которых вам может понадобиться: а, aaaa, mx и т. д. Вы также можете использовать жесткие или символьные ссылки для создания псевдонимов.
Независимо от имени, сценарий берет список имен хостов для поиска их как аргументов:

#!/Ы ri/bash #—- # Copyright Ш69; 2006 - Philip Howard - All rights reserved # # script a, aaaa. cname, mx. ns, ptr, soa. txt # # purpose Perform direct DNS lookups for authoritative DNS # data. This lookup bypasses the local DNS cache # server. # # syntax a [ names ... ] # aaaa [ names ... ] # any [ names ... ] # cname [ names ... ] # mx [ names ... ] # ns [ names ... ] # ptr [ names ... ] # soa [ names ... ] # txt [ names ... ] # # author Philip Howard # # For use with ptr query, function inaddr {

awk -F. '{print $4 "." S3 "." $2 "." SI ".in-addr.arpa.":}'
}
query_type=S( exec basename "S{0}" )

# Вычисляем и запрашиваем для каждого хоста, for hostname in "SO" ; do

if [[ "S{query_type}" -= ptr ]] ; then case "x${hostname}y" in ( x[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*y ) hostname-S( echo "${hostname}" j inaddr )
('* )
esac fi

# Выполняем запрос.

dig +trace +noall +answer "S{query_type}" "S{hostname}" | \ egrep "AS{hostname}"
done exit