我们在一个注册商处拥有超过 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