shell脚本实现批量解析域名IP地址(支持多DNS)
Posted Cosann
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本实现批量解析域名IP地址(支持多DNS)相关的知识,希望对你有一定的参考价值。
脚本介绍
- 多DNS解析(目前支持最多3个目标DNS服务器)
- 支持解析域名的A记录和CNAME记录
- 自定义DNS,内网DNS服务器,或公网DNS
- 多域名同时从目标DNS解析记录(脚本从文本读取域名列表)
实现代码
#!/bin/bash #Author:cosann #Create Time:20220714 #Description:批量解析域名A记录和CNAME记录脚本
#初始化DNS服务器
dns1=$1
dns2=$2
dns3=$3
#初始化解析库
dns_file=$4
#DNS检测函数定义
function Ping_Stat_1 ()
ping -w 1 $dns1 &> /dev/null
if [ "echo $?
" == 0 ]
then
return 100
else
return 200
fi
function Ping_Stat_2 ()
ping -w 1 $dns2 &> /dev/null
if [ "echo $?
" == 0 ]
then
return 100
else
return 200
fi
function Ping_Stat_3 ()
ping -w 1 $dns3 &> /dev/null
if [ "echo $?
" == 0 ]
then
return 100
else
return 200
fi
echo -e "DNS连通性检测中,请稍等"
#DNS检测函数调用
Ping_Stat_1
code1=echo $?
Ping_Stat_2
code2=echo $?
Ping_Stat_3
code3=echo $?
#DNS解析控制及解析功能实现
if [ "$code1" == 100 ];then
echo -e "DNS:$dns1 OK\\n"
echo -e "DNS1(IP:$dns1)"
echo -e "域名\\t\\t\\tA记录/CNAME 记录"
cat $dns_file | while read line
do
dig @$dns1 $line A +short | sed "s/^/$line\\t\\t/g"
done
echo -e "\\n"
else
echo -e "DNS:$dns1 NG" && echo -e "目标DNS网络不可达!"
fi
if [ "$code2" == 100 ];then
echo -e "DNS:$dns2 OK\\n"
echo -e "DNS2(IP:$dns2)"
echo -e "域名\\t\\t\\tA记录/CNAME记录"
cat $dns_file | while read line
do
dig @$dns2 $line A +short | sed "s/^/$line\\t\\t/g"
done
echo -e "\\n"
else
echo -e "DNS:$dns2 NG" && echo -e "目标DNS网络不可达!"
fi
if [ "$code3" == 100 ];then
echo -e "DNS:$dns3 OK\\n"
echo -e "DNS3(IP:$dns3)"
echo -e "域名\\t\\t\\tA记录/CNAME记录"
cat $dns_file | while read line
do
dig @$dns3 $line A +short | sed "s/^/$line\\t\\t/g"
done
else
echo -e "DNS:$dns3 NG" && echo -e "目标DNS网络不可达!"
fi
***
### 使用方法
例如脚本文件为dns_get.sh
```bash
#脚本文件 DNS1 DNS2 DNS3 存放域名的文件
./dns_get.sh dns1 dns2 dns3 dns_list
#示例(当前目录下有存放域名记录的文件dns_list.txt)
./dns_get.sh 114.114.114.114 8.8.8.8 192.168.1.1 dns_list.txt
关于域名文本文件
1. 如果域名文本文件和脚本文件在同一目录,可以使用上面方法运行脚本,否则使用绝对路径指定域名文本文件
2.域名文件格式注意不要使用URL,例如pxn.baxdu.com/?from=1026962h(中间有/),应该使用标准域名pxn.bxidu.com
使用案例
1. 当前目录下文件
2. 运行脚本(脚本需要有执行权限)
3. 运行结果
心得分享
以上是关于shell脚本实现批量解析域名IP地址(支持多DNS)的主要内容,如果未能解决你的问题,请参考以下文章
Python根据域名批量获取IP地址和经纬度(2021.12.1)
Python根据域名批量获取IP地址和经纬度(2021.12.1)