Однострочный скрипт для получения списка ns сероверов домена.
DOMAIN="youngblog.hoster-ok.com"; TLD="${DOMAIN##*.}"; FLD="${DOMAIN%.*}"; FLD="${FLD##*.}"; echo -e "TLD:${TLD}\nFLD:${FLD}"; ROOTNS=`dig +short NS ${TLD}. | head -n 1 | sed -e 's/\.$//g'`; dig +authority +noadditional +nocomments +nostats +nocmd ${FLD}.${TLD}. @${ROOTNS} | sed -e 's/[;#%].*//g;s/^[ \t]*//g;s/[ \t]*$//g;/^$/d'
TLD:com
FLD:hoster-ok
hoster-ok.com. 172800 IN NS ns1.vds-ok.com.
hoster-ok.com. 172800 IN NS ns2.vds-ok.com.
hoster-ok.com. 172800 IN NS ns1.hoster-ok.com.
Принцип следующий:
Первая команда dig +short NS ${TLD}. (обратите внимание на точку на конце) получает корневые NS сервера которые обслуживают конкретный TLD (Top Level Domain) например .com .net .org .ru и т.д., а вторая команда dig +authority +noadditional +nocomments +nostats +nocmd ${FLD}.${TLD}. @${ROOTNS} получает из определённого NS @${ROOTNS} информацию по домену ${FLD}.${TLD}. (снова обратите внимание на точку на конце) информация, которую нужно включить или подавить, перечислена ключами.
Примечание!В целях балансировки нагрузки первая команда выдаёт список серверов в произвольном порядке для того чтобы те кто выбирает постоянно одну и ту же строку каждый раз получали другой сервер.