我希望有人能帮忙。我正在努力解决这个问题,希望有一个简单的方法可以解决它。
我正在尝试获取本地 DNS 服务器中所有计算机的列表。为了进行测试,我使用的是 Win2008 DNS,但如果可能的话,我想尝试找到一种适用于任何计算机的方法。
本质上我想要的是 的等价物nslookup
,但针对 DNS 中的每台机器。例如。我甚至不介意它只列出机器名称。
192.168.0.1 Desktop1.domain.local
192.168.0.2 Server2.ad.domain.local
192.168.0.3 Server3.sub.domain.local
我不介意解决方案是 Windows 还是 Linux。
我一直在尝试在 Ubuntu 中使用 Dig,但我开始认为它的设计目的并不是我所想的那样。
dig +nocmd +domina.local any +multiline +noall +answer
按照我的基本逻辑,我想要的是
nslookup -all
或者
nslookup *
答案1
因此,您需要枚举 DNS 区域的内容。除了沿着您开始的路径进行暴力检查外,从“外部”很难做到这一点——这有点像破解密码。您必须查询所有可能的名称,检查具有模式匹配的通配符等……这并非易事,而且非常耗费资源,而且警惕的管理员也很容易注意到(如果您不小心,它看起来像是 DoS 攻击)。但我甚至不认为黑帽会以这种方式处理它,更容易的做法是在 DNS 服务器前面安装嗅探器并随着时间的推移被动收集有用的名称,或者只是破坏 DNS 服务器本身。
所以我不确定您的目的或用例,但有更简单/合法的方法。例如,访问 Microsoft DNS 服务器以打开 MMC,连接到 DNS 服务,然后您将看到所有区域以及每个区域内的所有名称。或者您可以要求管理员从 MMC 控制台导出所有区域。或者请求能够定期将区域传输拉到您的“测试”服务器(例如,使用“dig axfr @”或仅设置辅助服务器)。这些是获得您想要的东西的更简单和非侵入性的方法,并且假设这是出于合法目的,应该不是什么大问题。