Skip to content

Instantly share code, notes, and snippets.

@ratazzi
Created July 15, 2011 05:42
Show Gist options
  • Save ratazzi/1084145 to your computer and use it in GitHub Desktop.
Save ratazzi/1084145 to your computer and use it in GitHub Desktop.
#!/bin/bash
# 查询域名记录生效情况
# ratazzi <ratazzi.potts@gmail.com>
if [ -z "$1" ]; then
echo -e "Usage: $0 example.com\n"
exit 0
fi
DIG=`which dig`
DOMAIN=$1
#NS=( $(cat "ns.txt") )
NS=( $(cat <<EOF
google,8.8.8.8
google,8.8.4.4
香港有线宽频i-Cable,61.10.0.130
香港和记环球电讯,202.45.84.58
香港宽频,203.80.96.10
台湾中华电信,168.95.1.1
台湾中华电信,168.95.192.1
北京网通,202.106.0.20
北京网通,202.106.46.151
天津网通,202.99.104.68
辽宁网通,202.96.69.38
黑龙江网通,202.97.224.68
黑龙江网通,202.97.224.69
江苏网通,218.104.32.106
江苏网通,221.6.4.66
山东网通,202.102.152.3
山东网通,202.102.134.68
广东网通,210.21.4.130
海南网通,221.11.132.2
贵州网通,221.13.30.242
贵州网通,221.13.28.234
甘肃网通,221.7.34.10
内蒙古网通,202.99.224.68
黑龙江电信,219.147.198.230
湖南电信,202.103.96.112
四川电信,202.98.96.68
四川电信,61.139.54.66
云南电信,202.98.96.68
云南电信,61.166.150.123
天津移动,211.137.160.5
重庆移动,221.130.252.200
山西移动,211.138.106.19
辽宁移动,211.140.197.58
黑龙江移动,211.137.241.34
黑龙江移动,211.137.241.35
江苏移动,211.103.55.52
江苏移动,221.130.56.242
安徽移动,211.138.180.2
安徽移动,211.138.180.3
江西移动,211.141.90.68
湖北移动,211.137.76.67
湖南移动,211.142.210.98
海南移动,211.138.164.6
贵州移动,211.139.1.3
云南移动,211.139.29.68
甘肃移动,218.203.160.194
青海移动,211.138.75.123
内蒙古移动,211.138.91.1
新疆移动,218.202.152.130
西藏移动,211.139.73.34
中国科技大学教育网,202.38.64.1
重庆大学教育网,202.202.0.33
广东金融学院教育网,218.192.12.6
郑州大学教育网,202.196.64.1
深圳大学教育网,218.192.240.2
美国,208.67.222.222
美国,208.67.220.220
美国,165.87.13.129
美国,165.87.201.244
美国,205.171.2.65
加拿大,209.166.160.36
新西兰,202.27.184.3
印度,202.138.103.100
印度,202.138.96.2
EOF
) )
for ns in "${NS[@]}"
do
ns2=`echo "$ns" | awk -F ',' '{print $1}'`
ns1=`echo "$ns" | awk -F ',' '{print $2}'`
#rs=`$DIG $DOMAIN @202.138.96.2`
rs=`$DIG $DOMAIN @$ns1`
if (( $? != 0 )); then
echo -e "\033[01;31m*\033[00m 失败 @$ns1 $ns2\n"
continue
fi
ms=`echo "$rs" | grep 'Query time' | sed -e 's/[a-zA-Z\:; ]//g'`
record=`echo "$rs" | grep $DOMAIN | grep A | sed -e '/;/d'`
ttl=`echo "$record" | tail -1 | awk -F " " '{print $2}'`
A=( `echo "$record" | awk -F " " '{print $5}'` )
echo -e "\033[01;32m*\033[00m @$ns1 $ns2"
echo -e " 耗 时: $ms \033[01;32mms\033[00m"
echo -e " 剩余缓存时间: $ttl"
if [ -z "$A" ]; then
echo -e " A 记 录: \033[01;31mnull\033[00m\n"
continue
fi
for a in "${A[@]}"
do
echo -e " A 记 录: $a"
done
echo ''
#exit 0
done
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment