如何找到域名的权威名称服务器?

时间:2020-03-05 18:46:01  来源:igfitidea点击:

并获得额外的荣誉,是否有可能找到冲突的DNS记录的来源?

解决方案

回答

一种简单的方法是使用在线域工具。我最喜欢的是域工具(以前是whois.sc)。我不确定他们是否可以解决冲突的DNS记录。例如,用于stackoverflow.com的DNS服务器是

NS51.DOMAINCONTROL.COM
  NS52.DOMAINCONTROL.COM

回答

我们需要给定域名的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的主要名称服务器。

在输出末尾,将列出所有权威服务器,包括给定域的备份服务器。

回答

我有一个DNS传播工具,旨在回答此类问题。

源代码在AGPLv3下发布。

(是的,此刻界面还很基本:))

我们还可以使用"主机"命令找出域的名称服务器:

[davidp@supernova:~]$ host -t ns stackoverflow.com
stackoverflow.com name server ns51.domaincontrol.com.
stackoverflow.com name server ns52.domaincontrol.com.

回答

我们可以使用whois服务。在类似UNIX的操作系统上,我们将执行以下命令。另外,我们也可以在网站http://www.internic.net/whois.html上进行操作。

谁是stackoverflow.com

我们将得到以下响应。

...此处的文字已删除...

按列出顺序的域服务器:
NS51.DOMAINCONTROL.COM
NS52.DOMAINCONTROL.COM

我们可以使用nslookup或者dig来查找有关给定域记录的更多信息。这可以解决所描述的冲突。

回答

在* nix上:

$ dig -t ns <domain name>

回答

我们应该谷歌搜索的术语是"权威的",而不是"确定的"。

在Linux或者Mac上,我们可以使用命令" whois"," dig"," host"," nslookup"或者其他命令。在Windows上,nslookup也可能工作。

一个例子:

$ whois stackoverflow.com
[...]
   Domain servers in listed order:
      NS51.DOMAINCONTROL.COM
      NS52.DOMAINCONTROL.COM

至于额外的功劳:是的,有可能。

aryeh绝对是错误的,因为他的建议通常只会为我们提供主机名的IP地址。如果使用dig,则必须查找NS记录,如下所示:

dig ns stackoverflow.com

请记住,这可能会询问本地DNS服务器,因此可能会给出其缓存中包含的错误或者过时的答案。

回答

我们在问题中使用单数形式,但通常有几个权威名称服务器,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

在此,两个权威名称服务器具有相同的序列号。好的。

回答

不幸的是,大多数这些工具仅返回实际名称服务器本身提供的NS记录。为了更准确地确定哪些域名服务器实际负责一个域,我们必须使用" whois"并检查其中列出的域,或者使用" dig [domain] NS @ [root name server]"并运行该域名服务器递归直到获得名称服务器列表...

我希望有一个简单的命令行,我们可以运行该命令以可靠且一致的格式获得该结果,而不仅仅是从名称服务器本身给出的结果。对我来说,这样做的目的是能够查询大约330个我管理的域名,以便我可以准确确定每个域指向的名称服务器(根据其注册商设置)。

有人知道在* nix上使用" dig"或者" host"或者其他命令的命令吗?