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/nullif [ "`echo $?`" == 0 ]thenreturn 100elsereturn 200fi
}
function Ping_Stat_2 (){ping -w 1 $dns2 &> /dev/nullif [ "`echo $?`" == 0 ]thenreturn 100elsereturn 200fi
}
function Ping_Stat_3 (){ping -w 1 $dns3 &> /dev/nullif [ "`echo $?`" == 0 ]thenreturn 100elsereturn 200fi
}echo -e "DNS连通性检测中,请稍等"#DNS检测函数调用
Ping_Stat_1
code1=`echo $?`Ping_Stat_2
code2=`echo $?`Ping_Stat_3
code3=`echo $?`#DNS解析控制及解析功能实现
if [ "$code1" == 100 ];thenecho -e "DNS:$dns1 OK\n"echo -e "DNS1(IP:$dns1)"echo -e "域名\t\t\tA记录/CNAME 记录"cat $dns_file | while read linedodig @$dns1 $line A +short | sed "s/^/$line\t\t/g" doneecho -e "\n"
elseecho -e "DNS:$dns1 NG" && echo -e "目标DNS网络不可达!"
fiif [ "$code2" == 100 ];thenecho -e "DNS:$dns2 OK\n"echo -e "DNS2(IP:$dns2)"echo -e "域名\t\t\tA记录/CNAME记录"cat $dns_file | while read linedodig @$dns2 $line A +short | sed "s/^/$line\t\t/g" doneecho -e "\n"
elseecho -e "DNS:$dns2 NG" && echo -e "目标DNS网络不可达!"
fi if [ "$code3" == 100 ];thenecho -e "DNS:$dns3 OK\n"echo -e "DNS3(IP:$dns3)"echo -e "域名\t\t\tA记录/CNAME记录"cat $dns_file | while read linedodig @$dns3 $line A +short | sed "s/^/$line\t\t/g" done
elseecho -e "DNS:$dns3 NG" && echo -e "目标DNS网络不可达!"
fi
使用方法
例如脚本文件为dns_get.sh
#脚本文件 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,例如pan.baxdu.com/?from=1026962h(中间有/),应该使用标准域名pan.baidu.com
使用案例
1. 当前目录下文件
2. 运行脚本(脚本需要有执行权限)
3. 运行结果
心得分享
如果有大量的域名需要解析,可以使用该脚本一键解决,该脚本目前只是实现了一些基本功能,还有很多可以扩展的地方,例如逆向解析PTR记录,如果你有想法,欢迎提出。
shell脚本实现批量解析域名IP地址(支持多DNS)相关推荐
- Shell脚本实现多选DNS同时批量解析域名IP地址(新更新)
背景前文 该脚本是在原先<shell脚本实现批量解析域名IP地址(支持多DNS)>的基础上再进行了代码逻辑优化和小细节代码更新,重要变动部分如下: 增加任意多选DNS逻辑,即执行时可不选定 ...
- centos7 shell 获取ip_Linux Shell脚本中获取本机ip地址方法
方法一:ifconfig -a ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "a ...
- Shell脚本中获取本机ip地址,Linux获取本地ip地址
在 Shell 脚本中获取本机 IP 地址可以通过多种方式实现,这里介绍三种常用的方法: 1. 使用 ifconfig 命令获取本机 IP 地址 ifconfig 命令可以获取本机网卡的配置信息,包括 ...
- 如何利用excel批量提取域名IP地址?
今天跟大家分享一下如何利用excel批量提取域名IP地址? 1.首先我们打开Excel软件,录入要查询的域名并选中数据单元格区域 2.接着我们点击[DIY工具箱] 3.点击[更多]选择[查询域名的IP ...
- 编写一个shell脚本程序,检测指定IP地址的主机是否在线
编写一个脚本程序,检测指定IP地址的主机是否在线,如果在线则显示输出Online,否则输出Offline checkhost.sh [root@exam ~]# cd scripts [root@ex ...
- shell脚本自动记录登陆后 的IP地址和历史记录
转载 http://ruilinux.blog.51cto.com/4265949/845405 今天一台线上的服务器不知道被哪个活宝执行了chmod -R 700 /home,造成了文件权限不对, ...
- Shell脚本中获取本机ip地址
1.单网卡 方法1: #!/bin/sh local_ip=`ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2} ...
- C++ 实现 ping 功能 域名(URL)解析实际 IP地址
1.简述 一般情况下,我们想知道在当前电脑设备环境下,某一个网址能不能访问,最简单的方法是win + R 键 ,输入cmd,召唤cmd命令行程序,然后直接用ping命令 + 网址 来看返回的结果,那么 ...
- 5 个用于在 Linux 终端中查找域名 IP 地址的命令
5 个用于在 Linux 终端中查找域名 IP 地址的命令 本教程介绍了如何在 Linux 终端验证域名或计算机名的 IP 地址.本教程将允许你一次检查多个域.你可能已经使用过这些命令来验证信息.但是 ...
最新文章
- html5简单拖拽实现自动左右贴边+幸运大转盘
- matlab s% d%,matlab中var函数的翻译For N-D arrays, VAR operates along the first
- UVA 1366	 Martian Mining DP
- 网络地址和广播地址的作用
- R学习笔记:运行时间记录
- 【模拟】签订协议(nowcoder 217601)
- TeamViewer - 最好用强大的免费跨平台远程桌面控制软件 (支持电脑和手机)
- 服务器主板稳定,服务器主板
- 设计模式 - 策略模式Strategy
- 4行代码,Python玩转美图秀秀
- 信息录入率百分百上海强化施工现场建筑工人实名制管理
- 五大常用百度高级搜索语法
- 多模块项目提示“Module ** must not contain source root **. The root already belongs to module **”的解决办法
- 用HTML+CSS做一个简单的新闻门户 1页网页
- untiy Resorces目录动态加载资源
- 友元介绍以及实例说明
- 2-快速攻破vuex五大核心-附案例源码
- “全包”给装修公司,验收时发现甲醛超标,能要求重装或赔偿吗?
- Java多态练习宠物喂食
- 线性代数系列(三)--向量空间
热门文章
- 圆柱体的投影特点_圆柱体三面投影作图方法分析
- 极速办公(excel)如何快速计算排名
- 成都计算机专业考研难度排名,成都计算机考研难度排行榜
- ArcGIS Pro 加载项(5)——以“亩”为单位统计地块面积
- vue--后台管理系统问题和功能实现思路集锦
- 带你认识磁性材料及下游产品全球主流认证标识
- php imap 库_php imap_open 实例教程
- win7安全模式如何打开计算机管理,Win7安全模式怎么进?Win7进入安全模式方法
- Aziz 的 UiPath 工具面试经验
- Android 鼠标样式修改