当前位置: 首页 > 知识库问答 >
问题:

如何列出所有DNS记录?[闭门]

杨豪
2023-03-14

原关闭原因未解决

有没有办法列出一个域的所有DNS记录?

我知道诸如挖掘和查找之类的事情,但它们仅限于此。例如,如果我有一个子域a记录作为

test A somedomain.co.uk

那么除非我特别要求,例如。

dig any test.somedomain.co.uk

我看不见它。

是否有任何方法(除了通过转到DNS管理器查看记录外)可以准确查看所有DNS记录?

共有3个答案

应向晨
2023-03-14

host-a运行良好,类似于dig any

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.
汤昊
2023-03-14

我改进了乔希的答案。我注意到Diging只显示查询的名称服务器缓存中已经存在的条目,所以最好从SOA中提取一个权威的名称服务器(而不是依赖默认的名称服务器)。我还禁用了通配符IP的过滤,因为通常我对设置的正确性更感兴趣。

新脚本使用-x参数进行扩展输出,使用-sns参数选择特定的名称服务器:dig-x示例。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
缪风史
2023-03-14

当您查询任何记录时,您将获得该级别但不低于该级别的所有记录的列表。

# try this
dig google.com any

如果域名完全是“google.com”,这可能会返回A记录、TXT记录、NS记录、MX记录等。但是,它不会返回子记录(例如,www.google.com)。更准确地说,如果这些记录存在,你可能会得到它们。如果名称服务器选择不返回这些记录(例如,为了减小响应的大小),则不必返回这些记录。

AXFR是一种区域传输,很可能是您想要的。但是,除非您控制该区域,否则这些通常是受限的且不可用的。您通常直接从权威服务器(下面的@ns1.google.com)和可能未发布的名称服务器(隐形名称服务器)进行区域传输。

# This will return "Transfer failed"
dig @ns1.google.com google.com axfr

如果您控制了该区域,您可以将其设置为获得受TSIG密钥保护的传输。这是客户端可以发送给服务器以授权传输的共享秘密。

 类似资料:
  • 我在(裸机)集群中运行kube dns。我知道这是可行的,因为我可以将服务插入到我创建的名称中,并获得主机条目: 我不知道怎么做的是列出kube dns持有的所有记录。我尝试了一些标准的DNS技巧,比如dig和,但都没有成功。但无论如何,库伯内特斯自己一定有办法做到这一点。我试着检查配置地图,但没有找到我要找的东西。

  • 我想列出所有/任何DNS记录,包括DANE TLSA。 具有 我得到了所有的记录,包括DNSSEC等,但没有关于DANE。为什么啊? 具有 我有丹麦TLSA的记录。 我读过一个问题,有人想查询所有子域,我如何列出所有DNS记录?我知道这只有在区域转移的情况下才能实现。 但是_443_tcp不是真正的子域,是吗?我以为这只是一个SRV记录。那么,我如何查询任何东西,包括DANE TLSA?

  • 我正在寻找一种方法,以获得所有的DNS记录的网址<有没有一种方法可以在没有任何库的情况下使用C#实现这一点?

  • 问题内容: Python中是否有办法获取所有已定义记录器的列表? 我的意思是,是否存在某种东西,例如哪个会返回对象列表? 我搜索了python.logging文档,但找不到这种方法。 先感谢您。 问题答案: 记录器由实例保存在层次结构中。您可以在根记录器上查询 它所知道的记录器。 调用可确保将其保存的所有占位符记录器添加到列表中后,都将被完全初始化。

  • 我的域管理器是Office 365。 我希望它保留所有当前记录,但由于我的网站位于另一台服务器中,我已将“A”记录指向我的网站服务器IP。 我的问题是,我的网站DNS管理器是否会覆盖Office 365中的域管理器记录(Office 365管理域)?或者我的域管理器将忽略网站DNS管理器中设置的记录? 我这样问是因为我想保留Office 365中的所有电子邮件记录,并且只将我的域指向网站托管服务器

  • 有一种方法来检索域(和子域)的DNS记录的所有(TXT)条目? 我的目标是验证我的域的配置:www.rosposhop。com中,我为某些子域正确设置了多个SPF和DKIM记录 (因此我总共有5个TXT项目) 现在,如果我用或提问,我只得到了第一个TXT项目,而我应该得到TXT项目的完整列表。 为什么我错了? 顺便说一句,如果我要求惩罚性的子域名,现在我又得到了第一个条目: 返回: 再一次,我没有