从 powershell,我可以运行 Get-DnsServerResourceRecord -zonename "test.com" 来获取区域中的所有记录。
我可以将所有区域加载到一个变量中,并使用 for 循环获取所有区域中的所有记录。
我想要的是所有区域的所有记录,其中包含 CIDR 范围内的 IP 地址。
示例:我想要所有区域中值为 10.10.10.1/24 的所有记录。希望返回包含区域、记录类型、记录名称和值,例如 temp.com、A 记录、www、10.10.10.10 test.org、cname、host1、10.10.10.25 等
首先要注意的是,查询 DNS 时,每种类型的 DNS 记录都有不同的属性要查询,因此无法只查询与“mydomain.foo”匹配的任何记录并返回可能具有该字符串的所有 CNAME、MX、TXT、NS 记录。因此,下面的查询专门用于在 A 记录中查找 IPv4 地址。
由于您正在搜索 /24,最简单的选项就是搜索前 3 个八位字节。所以:
您可以通过一些字符串争论来搜索 /24 的子集,但由于 IP 地址是字符串而不是数字,因此变得复杂。
注意,查询位本身是:
其中关键要素是:
您也可以使用其中的其他属性类似地查询其他记录类型
RecordData
,例如: