有什么方法可以列出一个域的所有DNS记录?
我知道像dig和nslookup这样的东西,但它们只能到此为止。例如,如果我有一个子域a记录为
test A somedomain.co.uk
除非我特别提出要求。
dig any test.somedomain.co.uk
我看不见。
有什么方法(除了通过到DNS管理器查看记录)来确切地查看所有DNS记录是什么?
有什么方法可以列出一个域的所有DNS记录?
我知道像dig和nslookup这样的东西,但它们只能到此为止。例如,如果我有一个子域a记录为
test A somedomain.co.uk
除非我特别提出要求。
dig any test.somedomain.co.uk
我看不见。
有什么方法(除了通过到DNS管理器查看记录)来确切地查看所有DNS记录是什么?
当前回答
Windows:
您可能会发现需要检查您的域名DNS记录的状态,或检查名称服务器,以查看服务器正在拉动哪些记录。
Launch Windows Command Prompt by navigating to Start > Command Prompt or via Run > CMD. Type NSLOOKUP and hit Enter. The default Server is set to your local DNS, the Address will be your local IP. Set the DNS Record type you wish to lookup by typing set type=## where ## is the record type, then hit Enter. You may use ANY, A, AAAA, A+AAAA, CNAME, MX, NS, PTR, SOA, or SRV as the record type. Now enter the domain name you wish to query then hit Enter.. In this example, we will use Managed.com. NSLOOKUP will now return the record entries for the domain you entered. You can also change the Name Servers which you are querying. This is useful if you are checking the records before DNS has fully propagated. To change the Name Server type server [name server]. Replace [name server] with the Name Servers you wish to use. In this example, we will set these as NSA.managed.com. Once changed, change the query type (Step 3) if needed then enter new a new domain (Step 4.)
Linux:
1)使用Dig命令查看DNS记录 Dig是域名信息探勘器(domain information groper)的缩写,是一种用于查询DNS名称服务器的灵活工具。它执行DNS查找并显示从所查询的名称服务器返回的答案。大多数DNS管理员使用dig来排除DNS问题,因为它的灵活性、易用性和输出的清晰度。其他查找工具的功能往往不如dig。
2)使用NSlookup命令查看DNS记录 Nslookup是一个用于查询Internet域名服务器的程序。Nslookup有交互和非交互两种模式。
交互式模式允许用户查询名称服务器,以获取各种主机和域的信息,或打印某个域中的主机列表。
非交互模式用于仅打印主机或域的名称和请求信息。这是网络管理工具,将帮助他们检查和排除DNS相关问题。
3)使用主机命令查看DNS记录 host是一个用于执行DNS查找的简单实用程序。它通常用于将名称转换为IP地址,反之亦然。当没有给出参数或选项时,主机打印其命令行参数和选项的简短摘要。
其他回答
区域传输是确保您拥有所有子域记录的唯一方法。如果DNS配置正确,则通常不能执行外部区域传输。 的扫描。io项目有一个DNS记录数据库,可以下载和搜索子域。这需要下载87GB的DNS数据,或者您可以尝试在https://hackertarget.com/find-dns-host-records/上在线搜索数据
要在一个实例中获得一个域的所有DNS记录,没有简单的方法。 你只能查看某些记录,例如,如果你想查看某个域的A记录,你可以使用命令:dig A (type of record) domain.com。这对于您想要查看该域的所有其他类型的记录都是一样的。
如果你不熟悉命令行界面,你也可以使用像mxtoolbox.com这样的网站。Wich是非常方便的工具,以获得一个领域的记录。
我希望这能回答你的问题。
我改进了乔什的答案。我注意到,dig只显示查询的名称服务器缓存中已经存在的条目,因此最好从SOA中提取一个权威的名称服务器(而不是依赖默认的名称服务器)。我还禁用了通配符ip的过滤,因为我通常对设置的正确性更感兴趣。
新脚本使用-x参数扩展输出,使用-s NS参数选择特定的命名服务器:dig -x example.com
#!/bin/bash
set -e; set -u
COMMON_SUBDOMAINS="www mail mx a.mx smtp pop imap blog en ftp ssh login"
EXTENDED=""
while :; do case "$1" in
--) shift; break ;;
-x) EXTENDED=y; shift ;;
-s) NS="$2"; shift 2 ;;
*) break ;;
esac; done
DOM="$1"; shift
TYPE="${1:-any}"
test "${NS:-}" || NS=$(dig +short SOA "$DOM" | awk '{print $1}')
test "$NS" && NS="@$NS"
if test "$EXTENDED"; then
dig +nocmd $NS "$DOM" +noall +answer "$TYPE"
wild_ips=$(dig +short "$NS" "*.$DOM" "$TYPE" | tr '\n' '|')
wild_ips="${wild_ips%|}"
for sub in $COMMON_SUBDOMAINS; do
dig +nocmd $NS "$sub.$DOM" +noall +answer "$TYPE"
done | cat #grep -vE "${wild_ips}"
dig +nocmd $NS "*.$DOM" +noall +answer "$TYPE"
else
dig +nocmd $NS "$DOM" +noall +answer "$TYPE"
fi
在没有区域传输功能的情况下,我写了这个小bash脚本dg:
#!/bin/bash
COMMON_SUBDOMAINS=(www mail smtp pop imap blog en ftp ssh login)
if [[ "$2" == "x" ]]; then
dig +nocmd "$1" +noall +answer "${3:-any}"
wild_ips="$(dig +short "*.$1" "${3:-any}" | tr '\n' '|')"
wild_ips="${wild_ips%|}"
for sub in "${COMMON_SUBDOMAINS[@]}"; do
dig +nocmd "$sub.$1" +noall +answer "${3:-any}"
done | grep -vE "${wild_ips}"
dig +nocmd "*.$1" +noall +answer "${3:-any}"
else
dig +nocmd "$1" +noall +answer "${2:-any}"
fi
现在我使用dg example.com来获得一个漂亮的、干净的DNS记录列表,或者使用dg example.com x来包括一堆其他流行的子域名。
grep -vE "${wild_ips}"过滤掉可能是通配符DNS条目的结果的记录,例如* 10800 IN a 1.38.216.82。否则,通配符条目将使它看起来好像每个$ common_subdomain都有记录。
注意:这依赖于任何查询,这些查询被一些DNS提供商(如CloudFlare)阻止。
Windows:
您可能会发现需要检查您的域名DNS记录的状态,或检查名称服务器,以查看服务器正在拉动哪些记录。
Launch Windows Command Prompt by navigating to Start > Command Prompt or via Run > CMD. Type NSLOOKUP and hit Enter. The default Server is set to your local DNS, the Address will be your local IP. Set the DNS Record type you wish to lookup by typing set type=## where ## is the record type, then hit Enter. You may use ANY, A, AAAA, A+AAAA, CNAME, MX, NS, PTR, SOA, or SRV as the record type. Now enter the domain name you wish to query then hit Enter.. In this example, we will use Managed.com. NSLOOKUP will now return the record entries for the domain you entered. You can also change the Name Servers which you are querying. This is useful if you are checking the records before DNS has fully propagated. To change the Name Server type server [name server]. Replace [name server] with the Name Servers you wish to use. In this example, we will set these as NSA.managed.com. Once changed, change the query type (Step 3) if needed then enter new a new domain (Step 4.)
Linux:
1)使用Dig命令查看DNS记录 Dig是域名信息探勘器(domain information groper)的缩写,是一种用于查询DNS名称服务器的灵活工具。它执行DNS查找并显示从所查询的名称服务器返回的答案。大多数DNS管理员使用dig来排除DNS问题,因为它的灵活性、易用性和输出的清晰度。其他查找工具的功能往往不如dig。
2)使用NSlookup命令查看DNS记录 Nslookup是一个用于查询Internet域名服务器的程序。Nslookup有交互和非交互两种模式。
交互式模式允许用户查询名称服务器,以获取各种主机和域的信息,或打印某个域中的主机列表。
非交互模式用于仅打印主机或域的名称和请求信息。这是网络管理工具,将帮助他们检查和排除DNS相关问题。
3)使用主机命令查看DNS记录 host是一个用于执行DNS查找的简单实用程序。它通常用于将名称转换为IP地址,反之亦然。当没有给出参数或选项时,主机打印其命令行参数和选项的简短摘要。