使用dig批量查询IP

dig 命令简介

dig(Domain Information Groper)是 Linux 和 Unix 系统中用于查询 DNS(域名系统)的强大工具。它提供了对 DNS 查询的详细控制,并且可以用来执行各种类型的 DNS 查询,包括但不限于 A 记录、MX 记录、NS 记录、CNAME 记录、TXT 记录等。dig 是网络管理员和开发者调试 DNS 问题、验证域名配置以及获取有关互联网资源信息的重要工具。

主要特点

  • 多功能性:支持多种查询类型和选项,能够满足复杂的 DNS 查询需求。
  • 详细的输出:提供详尽的查询结果信息,默认情况下输出格式易于阅读,同时也支持简洁模式(如 +short)。
  • 灵活性:用户可以通过命令行参数自定义查询行为,例如指定 DNS 服务器、设置查询超时时间、递归查询等。
  • 批处理能力:支持从文件批量读取域名进行查询(使用 -f 参数),适合自动化脚本或大规模 DNS 数据收集。

基本用法

1
dig [选项] [域名] [记录类型] 

查询特定DNS服务器

1
dig @8.8.8.8 www.baidu.com

批量查询文件

创建一个包含域名列表的文本文件,并使用-f参数进行批量查询。

1
dig -f domains.txt
1
2
3
www.baidu.com
www.bing.com
www.sina.com

批量查询数组

创建一个包含域名列表的数组,并使用-f参数进行批量查询。

1
2
3
4
5
6
MH=(
www.baidu.com
www.bing.com
www.sina.com
)
printf "%s\n" "${MH[@]}" | dig @119.29.29.29 -f /dev/stdin +noall +answer | awk '{print $5, $1}'