Answers:
您需要给定域名的SOA(授权开始)记录,这是使用通用的nslookup命令行工具完成此操作的方法:
command line> nslookup
> set querytype=soa
> stackoverflow.com
Server: 217.30.180.230
Address: 217.30.180.230#53
Non-authoritative answer:
stackoverflow.com
origin = ns51.domaincontrol.com # ("primary name server" on Windows)
mail addr = dns.jomax.net # ("responsible mail addr" on Windows)
serial = 2008041300
refresh = 28800
retry = 7200
expire = 604800
minimum = 86400
Authoritative answers can be found from:
stackoverflow.com nameserver = ns52.domaincontrol.com.
stackoverflow.com nameserver = ns51.domaincontrol.com.
该产地(或主名称服务器在Windows上)行告诉你,ns51.domaincontrol是主域名服务器stackoverflow.com。
在输出末尾,将列出所有权威服务器,包括给定域的备份服务器。
dig
对我来说似乎使用了(请参见下面的答案)
nslookup -type=soa stackoverflow.com
今天(2019-Feb)在Linux上运行,则权威部分为空。
您在问题中使用单数形式,但通常有几个权威名称服务器,RFC 1034建议至少两个。
除非您是指“主要名称服务器”而不是“权威名称服务器”。辅助名称服务器是权威的。
在Unix上查找域的名称服务器:
% dig +short NS stackoverflow.com
ns52.domaincontrol.com.
ns51.domaincontrol.com.
要找出列为主要服务器的服务器(“主要”的概念现在已经很模糊了,通常没有很好的答案):
% dig +short SOA stackoverflow.com | cut -d' ' -f1
ns51.domaincontrol.com.
要检查名称服务器之间的差异,我倾向于旧的 check_soa
工具,工具在Liu&Albitz的“ DNS&BIND”一书(O'Reilly编辑器)中进行了介绍。可以在http://examples.oreilly.com/dns5/中找到源代码。
% check_soa stackoverflow.com
ns51.domaincontrol.com has serial number 2008041300
ns52.domaincontrol.com has serial number 2008041300
在此,两个权威名称服务器具有相同的序列号。好。
www.pressero.com
,这是另一个站点的CNAME-dig + short SOA仅返回CNAME目标。
www.pressero.com
,您可能正在考虑A记录(dig
如果未指定,则为默认记录类型)。但是,如果需要,只需添加一个tail -1
即可检索最终结果。
dig +short SOA www.pressero.com
。这仅返回CNAME目标,而不返回pressero.com
域的SOA记录,这正是我所期望的。 tail -1
无济于事;dig +short SOA
只发出一条线。
在* nix上:
$ dig -t ns <domain name>
我有一个DNS传播工具旨在回答此类问题。
源代码在AGPLv3下发布。
(是的,此刻界面还很基本:)
您还可以使用“主机”命令找出域的名称服务器:
[davidp @ supernova:〜] $ host -t ns stackoverflow.com stackoverflow.com名称服务器ns51.domaincontrol.com。 stackoverflow.com名称服务器ns52.domaincontrol.com。
我发现最好总是添加+ trace选项的最佳方法:
dig SOA +trace stackoverflow.com
它也可以与其他提供程序中托管的递归CNAME一起使用。+ trace trace暗示+ norecurse,因此结果仅适用于您指定的域。
您应该谷歌搜索的术语是“权威的”,而不是“确定的”。
在Linux或Mac,你可以使用的命令whois
,dig
,host
,nslookup
或数人。nslookup
在Windows上可能也可以使用。
一个例子:
$ whois stackoverflow.com
[...]
Domain servers in listed order:
NS51.DOMAINCONTROL.COM
NS52.DOMAINCONTROL.COM
至于额外的功劳:是的,有可能。
aryeh绝对是错误的,因为他的建议通常只会为您提供主机名的IP地址。如果使用dig
,则必须查找NS记录,如下所示:
dig ns stackoverflow.com
请记住,这可能会询问您的本地DNS服务器,因此可能会给出其缓存中包含的错误或过时的答案。
我们已经建立了 dns查找工具,可为您提供域的权威名称服务器在一个请求及其常见的dns记录。
示例:https://www.misk.com/tools/#dns/stackoverflow.com
我们的工具通过在根名称服务器上执行实时(未缓存)dns查找,然后遵循名称服务器引用直到找到权威名称服务器来找到权威名称服务器。这与dns解析器用来获取权威答案的逻辑相同。在每个查询上选择(标识)一个随机的权威名称服务器,使您可以通过执行多个请求来查找冲突的dns记录。
您也可以通过单击上面示例中dns查找结果底部的“权威名称服务器”来查看名称服务器委托路径。
示例:https://www.misk.com/tools/#dns/stackoverflow.com@f.root-servers.net
您可以使用whois服务。在类似UNIX的操作系统上,您将执行以下命令。或者,您可以在Web上通过http://www.internic.net/whois.html进行操作。
谁是stackoverflow.com
您将收到以下响应。
...此处的文字已删除...
按列出顺序的域服务器:NS51.DOMAINCONTROL.COM NS52.DOMAINCONTROL.COM
您可以使用nslookup或dig来查找有关给定域记录的更多信息。这可能有助于您解决所描述的冲突。
不幸的是,大多数这些工具仅返回实际名称服务器本身提供的NS记录。为了更准确地确定哪些域名服务器实际负责一个域,您必须使用“ whois”并检查其中列出的域,或者使用“ dig [domain] NS @ [root name server]”并运行该域名服务器。递归直到获得名称服务器列表...
我希望有一个简单的命令行,您可以运行该命令以可靠且一致的格式获得该结果,而不仅仅是从名称服务器本身给出的结果。对我来说,这样做的目的是能够查询大约330个我管理的域名,以便我可以准确确定每个域指向的名称服务器(根据其注册商设置)。
有人知道在* nix上使用“ dig”或“ host”或其他命令的命令吗?
SOA记录出现在域所有者没有控制权的层次结构中的所有服务器上,它们实际上都指向在域所有者控制下的一台权威名称服务器。
另一方面,权威服务器本身上的SOA记录并不是解析该域所必需的,它可以包含伪造的信息(或隐藏的主服务器或其他受限制的服务器),并且不应依赖于它来确定权威名称服务器给定域。
您需要查询对顶级域具有权威性的服务器,以获取给定子域的可靠SOA信息。
(可以从根名称服务器查询有关哪个服务器授权哪个TLD的信息)。
当您从TLD权威服务器获得有关SOA的可靠信息时,可以查询任何其他NS记录的主名称服务器本身(在gTLD域名服务器上的SOA记录中的那个)!,然后继续检查所有通过查询NS记录获得的那些名称服务器,以查看这些服务器中的任何一个上是否存在任何其他特定记录的不一致之处。
与nslookup / windows相比,这一切在linux和dig上都能更好/可靠地工作。
一种简单的方法是使用在线域工具。我最喜欢的是域工具(以前是whois.sc)。我不确定他们是否可以解决冲突的DNS记录。例如,用于stackoverflow.com的DNS服务器是
NS51.DOMAINCONTROL.COM
NS52.DOMAINCONTROL.COM
我发现对于某些域,以上答案不起作用。我发现最快的方法是首先检查NS记录。如果不存在,请检查SOA记录。如果不存在,请使用dig递归解析名称,并获取最后返回的NS记录。一个合适的例子是analyticsdcs.ccs.mcafee.com.
host -t NS analyticsdcs.ccs.mcafee.com.
host -t SOA analyticsdcs.ccs.mcafee.com.
dig +trace analyticsdcs.ccs.mcafee.com. | grep -w 'IN[[:space:]]*NS' | tail -1
host analyticsdcs.ccs.mcafee.com. gtm2.mcafee.com.