获取多个域的 DNS 记录列表

获取多个域的 DNS 记录列表

我们在一个注册商处拥有超过 250 个域名,由于多年的组织疏忽,这些域名指向托管网站的各种不同的服务器。

我被要求清理这个。

首先,我想获取每个域名及其 DNS A 记录的列表,以查看它们指向哪个服务器。有人知道我该怎么做吗?

答案1

以下是我在 PowerShell 中使用每行一个域的文本文件执行此操作的方法。

Get-Content domains.txt | %{
  new-object -type PSObject -property @{
    Domain=$_
    IPAddr=[System.Net.Dns]::GetHostAddresses($_)
  }
}

输出类似以下内容:

Domain                IPAddr
------                ------
www.google.com        {2001:4860:4001:803::1011, 74.125.224.145, 74.125.224....
www.yahoo.com         {2001:4998:c:401::c:9101, 2001:4998:c:401::c:9102, 200...
www.flickr.com        {216.115.107.206, 67.195.141.201, 67.195.141.200, 98.1...
www.serverfault.com   {64.34.119.12}
www.stackexchange.com {64.34.119.12}

以下是我在 Perl 中对同一文本文件进行的操作。

perl -MSocket -nE 'chomp; say $_, " ", inet_ntoa "".gethostbyname $_;' domains.txt

输出类似以下内容:

www.google.com 74.125.141.103
www.yahoo.com 72.30.38.140
www.flickr.com 216.115.107.206
www.serverfault.com 64.34.119.12
www.stackexchange.com 64.34.119.12

答案2

更简单的答案是从注册商处获取 DNS 记录,以查看它们指向何处。大多数优秀的批量注册商都具有专门用于此类事情的导出功能。现在,如果它们全部托管在站外,您可能需要求助于代码来获取它们的 A 记录。但看到 DNS 解析已委托给 ns1.hosting.com 将是一个重要线索,可帮助您找到合适的托管公司并开始获取凭据。

答案3

在 Bash 中:

在 中输入您的域名(每行一个)domains.txt

for domain in $( cat domains.txt ); do host -ta $domain; done

这将打印类似以下内容的内容:

stackoverflow.com has address 64.34.119.12
serverfault.com has address 64.34.119.12

相关内容