17 авг. 2011 г.

nslookup2

Цель: Нужно было быстренько опросить кучу DNS серверов на резольв определенного хоста ... и когда хост один еще куда не шло можно пощелкать nslookup ... но когда их количество более одного .... жопно как то, ручками ... вот и родился скриптик, мож кому пригодится:



Решение:
#!/usr/local/bin/bash

if [ -z "$1" ]; then
    echo Use: $0 hostname
    exit
fi

DNS=(
208.67.222.222
208.67.220.220
8.8.8.8
205.171.2.65
205.171.3.65
62.33.189.250
80.237.81.250
206.124.64.1
66.93.87.2
216.231.41.2
64.81.45.2
64.81.127.2
64.81.79.2
64.81.159.2
66.92.159.2
64.81.79.2
64.81.159.2
64.81.127.2
64.81.45.2
216.27.175.2
66.92.159.2
66.93.87.2
199.2.252.10
204.97.212.10
204.117.214.10
)

IFS=$'\n'
cntDNS=${#DNS[@]}

for II in ${!DNS[*]}
do
    printf '% -25s' "Server ${DNS[$II]}:"
    nslookup -timeout=2 $1 ${DNS[$II]} | sed -ne 's/Address:\([^#]*\)$/\1/p' |sort| tr -d "\n"
    echo
done


Примечание:
* Не забудьте подправить первую строку скрипта, а именно "#!/bin/bash" на ваше место расположение bash'a (whereis bash).
** DNS'ки публичные, некоторые могут не отвечать, поэтому -timeout=2 ... дабы не зависать сильно на таких запросах ...

good luck

Комментариев нет:

Отправить комментарий