我们有一台 Windows Server 2k8 服务器,为我们的域运行 DNS 服务。一些正向查找没有反向查找,一些反向查找没有正向查找。DNS 管理不善(在我之前),这似乎是太多厨师的情况,也是我们几年前遇到的失控脚本的问题(也是在我之前)。有人有快速方法(希望是脚本)来验证和修复这些问题吗?
答案1
这是我出于其他原因而闲置的脚本,非常简单,不完全匹配,但在紧急情况下它可以做到。您需要一个了解 Windows DNS 服务器的类 Unix 机器(Linux 或 OS X)。
步骤 1:将您的 DNS 记录转储到名为 dns.txt 的文本文件中,每条记录的名称或 IP 是唯一的条目,每行一个。将此文本文件放在与 PHP 脚本相同的目录中,打开终端,然后“cd”到该目录。步骤 2:针对它运行此脚本并将结果传送到文件中。(“php ./dnscount.php > results.txt”)步骤 3:获取结果文件并将其切分(可能使用 Excel 的导入文本功能),以便您拥有一个仅包含已解析条目的文本文件。将该文件另存为 dns.txt。步骤 4:再次运行脚本。负面结果将是您想要修复的结果。
再次强调,我刚好有这个,所以你的里程可能会有所不同,但我知道它可以在大约半小时内完成你需要的工作(大部分时间都花在获取你的 Linux 机器和为输入切分各种文本文件上)。此外,你可能想要删除 pre 和 br 标签。
<?php
$dnsfile = fopen('dnslist.txt', 'r');
$whilenot = 1;
echo "<PRE>";
while($whilenot){
$whilenot = 0;
$hostname = fgetss($dnsfile);
if($hostname){
//$hostcommand = "host -la -t any " .$hostname. "";
$hostcommand = "host " .$hostname. "";
passthru($hostcommand);
$whilenot = 1;
print('<br>');
}
}
echo "</PRE>";
fclose($dnsfile);
?>
答案2
抱歉,我还没有写过任何东西,但我可以向您介绍一个很棒的内置工具。实用程序 dnscmd.exe 是用于管理 DNS 服务器的 Windows 命令行工具。如果您熟悉 Windows shell 脚本,这应该是一个很好的起点。这样,您就不需要 PHP 和 Linux/Unix,如另一个答案所示。如果您还没有这个基础设施,那么设置它可能会非常耗时。
这是一个很棒的网站,我以前用它来熟悉它:如何使用命令提示符轻松管理 DNS 服务器?