有什么方法可以列出一个域的所有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记录是什么?
当前回答
主机-a工作良好,类似于挖任何。
EG:
$ host -a google.com
Trying "google.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10403
;; flags: qr rd ra; QUERY: 1, ANSWER: 18, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;google.com. IN ANY
;; ANSWER SECTION:
google.com. 1165 IN TXT "v=spf1 include:_spf.google.com ip4:216.73.93.70/31 ip4:216.73.93.72/31 ~all"
google.com. 53965 IN SOA ns1.google.com. dns-admin.google.com. 2014112500 7200 1800 1209600 300
google.com. 231 IN A 173.194.115.73
google.com. 231 IN A 173.194.115.78
google.com. 231 IN A 173.194.115.64
google.com. 231 IN A 173.194.115.65
google.com. 231 IN A 173.194.115.66
google.com. 231 IN A 173.194.115.67
google.com. 231 IN A 173.194.115.68
google.com. 231 IN A 173.194.115.69
google.com. 231 IN A 173.194.115.70
google.com. 231 IN A 173.194.115.71
google.com. 231 IN A 173.194.115.72
google.com. 128 IN AAAA 2607:f8b0:4000:809::1001
google.com. 40766 IN NS ns3.google.com.
google.com. 40766 IN NS ns4.google.com.
google.com. 40766 IN NS ns1.google.com.
google.com. 40766 IN NS ns2.google.com.
其他回答
要在一个实例中获得一个域的所有DNS记录,没有简单的方法。 你只能查看某些记录,例如,如果你想查看某个域的A记录,你可以使用命令:dig A (type of record) domain.com。这对于您想要查看该域的所有其他类型的记录都是一样的。
如果你不熟悉命令行界面,你也可以使用像mxtoolbox.com这样的网站。Wich是非常方便的工具,以获得一个领域的记录。
我希望这能回答你的问题。
dig @8.8.8.8 example.domain any
将列出所有DNS记录。这里8.8.8.8是谷歌的DNS。
我改进了乔什的答案。我注意到,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
主机-a工作良好,类似于挖任何。
EG:
$ host -a google.com
Trying "google.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10403
;; flags: qr rd ra; QUERY: 1, ANSWER: 18, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;google.com. IN ANY
;; ANSWER SECTION:
google.com. 1165 IN TXT "v=spf1 include:_spf.google.com ip4:216.73.93.70/31 ip4:216.73.93.72/31 ~all"
google.com. 53965 IN SOA ns1.google.com. dns-admin.google.com. 2014112500 7200 1800 1209600 300
google.com. 231 IN A 173.194.115.73
google.com. 231 IN A 173.194.115.78
google.com. 231 IN A 173.194.115.64
google.com. 231 IN A 173.194.115.65
google.com. 231 IN A 173.194.115.66
google.com. 231 IN A 173.194.115.67
google.com. 231 IN A 173.194.115.68
google.com. 231 IN A 173.194.115.69
google.com. 231 IN A 173.194.115.70
google.com. 231 IN A 173.194.115.71
google.com. 231 IN A 173.194.115.72
google.com. 128 IN AAAA 2607:f8b0:4000:809::1001
google.com. 40766 IN NS ns3.google.com.
google.com. 40766 IN NS ns4.google.com.
google.com. 40766 IN NS ns1.google.com.
google.com. 40766 IN NS ns2.google.com.
区域传输是确保您拥有所有子域记录的唯一方法。如果DNS配置正确,则通常不能执行外部区域传输。 的扫描。io项目有一个DNS记录数据库,可以下载和搜索子域。这需要下载87GB的DNS数据,或者您可以尝试在https://hackertarget.com/find-dns-host-records/上在线搜索数据