题 使用dig列出域中的所有DNS记录?


我的公司运行内部DNS mycompany.example 

我需要在网络上找到一台机器,但我忘记了它的名字。如果我能看到一个列表,它可能会让我记忆犹新。

如何列出所有域记录 mycompany.example


150
2018-05-05 19:02






答案:


简短的回答是您列出CNAME的具体问题是,您无法在未经许可的情况下进行区域转移(请参阅 如何列出给定域的所有CNAME记录?)。

也就是说,你可以使用dig来列出其他记录:

dig +nocmd yourdomain.example any +multiline +noall +answer

147
2017-07-26 22:28



任何在某些DNS服务器上都没有好处 IN HINFO "ANY obsoleted" "See draft-ietf-dnsop-refuse-any" - niieani
这个问题与此无关 CNAME 记录... - Patrick Mevzek


一个更容易记住的命令(和更多信息)是:

> dig google.com ANY

返回以下内容:

; <<>> DiG 9.8.3-P1 <<>> google.com ANY
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31013
;; flags: qr rd ra; QUERY: 1, ANSWER: 22, AUTHORITY: 0, ADDITIONAL: 3

;; QUESTION SECTION:
;google.com.            IN  ANY

;; ANSWER SECTION:
google.com.     17  IN  A   74.125.225.72
google.com.     17  IN  A   74.125.225.73
google.com.     17  IN  A   74.125.225.78
google.com.     17  IN  A   74.125.225.64
google.com.     17  IN  A   74.125.225.65
google.com.     17  IN  A   74.125.225.66
google.com.     17  IN  A   74.125.225.67
google.com.     17  IN  A   74.125.225.68
google.com.     17  IN  A   74.125.225.69
google.com.     17  IN  A   74.125.225.70
google.com.     17  IN  A   74.125.225.71
google.com.     86400   IN  NS  ns1.google.com.
google.com.     86400   IN  NS  ns2.google.com.
google.com.     86400   IN  NS  ns3.google.com.
google.com.     86400   IN  NS  ns4.google.com.
google.com.     66641   IN  SOA ns1.google.com. dns-admin.google.com.    2013082900 7200 1800 1209600 300
google.com.     177 IN  MX  40 alt3.aspmx.l.google.com.
google.com.     177 IN  MX  50 alt4.aspmx.l.google.com.
google.com.     177 IN  MX  10 aspmx.l.google.com.
google.com.     177 IN  MX  20 alt1.aspmx.l.google.com.
google.com.     177 IN  MX  30 alt2.aspmx.l.google.com.
google.com.     287 IN  AAAA    2607:f8b0:4009:803::1007

;; ADDITIONAL SECTION:
ns1.google.com.     3924    IN  A   216.239.32.10
ns2.google.com.     64508   IN  A   216.239.34.10
ns3.google.com.     64508   IN  A   216.239.36.10

;; Query time: 77 msec
;; SERVER: 10.6.23.4#53(10.6.23.4)
;; WHEN: Fri Sep 13 14:26:09 2013
;; MSG SIZE  rcvd: 506

69
2017-09-13 19:29



这不是问题所要求的。它要求'google.com'中的所有记录。域名,而不仅仅是“google.com”的记录。您的查询中没有任何内容列出任何“google.com”。胶水记录除外(名称服务器的A记录)。 - yoonix
完美的命令。简洁易记,谢谢发帖! - fusion27
现在唯一的答案来自 google.com 至 ANY 查询是: google.com. 14400 IN CNAME forcesafesearch.google.com. (gist.github.com/Dorian/afb136672c91fc89df572a4b0f8106dd) - Dorian
该 IETF建议拒绝ANY。我明白了: HINFO "Please stop asking for ANY" "See draft-ietf-dnsop-refuse-any" - Tom Hale


尝试:

dig -tAXFR mycompany.example

这可能有效,也可能无效。许多DNS服务器都会拒绝 DNS区域传输 像这样。有关更多信息,请参阅 AXFR协议如何工作


49
2018-05-05 19:07





你也可以使用 host DNS查找实用程序 -l 开关:

host -l example.com

当然,您需要DNS区域传输权才能实现此目的。


19
2017-08-18 06:16



与dig -t AXFR domain.name相同 - XXL
@XXL ...除了更容易记住.... +1 - Jeremy Holovacs


您尝试使用的方法不起作用。看到 这个问题 欲获得更多信息。假设您是管理员(如果您不是请与管理员讨论并在再次发布之前阅读常见问题解答),只需查看区域文件即可。


2
2018-05-05 22:20





dnscmd <ServerName> /zoneprint <Domain>

我发现到目前为止没有一个答案对我有用,主要是由于区域转移失败。这个命令没有遇到这个问题,并向我提供了一些更接近我在DNS管理器工具中得到的东西。


2
2018-05-11 16:05



对我来说这是最好的答案。没有区域转移问题,只需将其传输到 find 你已经完成了引用您感兴趣的服务器的所有域记录。(注意 ServerName 以上是DNS服务器)。 - aucuparia
很奇怪,不可能 brew install dnscmd - the0ther
dnscmd只是windows:看 technet.microsoft.com/en-us/library/cc784399(v=ws.10).aspx - user906489


您还可以使用nslookup工具:

nslookup example.com

0
2017-10-07 14:46