获取与IP关联的所有DNS记录

约翰·贝文

背景

以下代码返回给定别名或主机的IPv4地址: [System.Net.Dns]::GetHostAddresses('someDnsName').IPAddressToString

以下代码返回主机名(CName)和IP的别名: [System.Net.Dns]::GetHostByAddress('172.12.34.56')

因此,我希望返回IP的所有内容GetHostAddresses都列在“主机名”或“调用的别名”下GetHostByAddress(或至少列出该项目的FQDN)。即我希望以下查询的结果返回true

cls
$name = 'someName'
$fqdn = [System.Net.Dns]::GetHostEntry($name).HostName 
$ip = [System.Net.Dns]::GetHostAddresses($fqdn).IPAddressToString
$result = [System.Net.Dns]::GetHostByAddress($ip) 

#this is the result I'd expect to be true
($result.HostName -eq $fqdn) -or ($result.Aliases -contains $fqdn)

#here's additional info to aid in sense checking
"Name: $name"
"FQDN: $fqdn"
"IP: $ip"
"Result: "
(" - HostName: {0}" -f $result.HostName)
" - Aliases: " 
($result | select -ExpandProperty Aliases) | %{("`t{0}" -f $_)}

但是,有一些A记录无法以这种方式运行。这可能是我对DNS的误解,是我公司对DNS的配置错误(这是因为我正在编写此脚本的DNS异常;我们在同一IP上找到了2台服务器;所以我想检查其他服务器),或者是其他东西...

问题

有没有办法列出与给定IP地址关联的所有DNS名称?即,这样,从IP返回的任何内容都GetHostAddresses将在对返回的IP地址进行反向查找的结果中列出?

安斯加·威彻斯(Ansgar Wiechers)

在查看全局范围时,获取与给定IP地址关联的所有名称的明确列表是不可行的,因为任何DNS管理员都可以为其区域中的任何IP地址定义一条记录。例如,我可以轻松定义一个myoverflow.planetcobalt.net.指向stackoverflow.comIP地址198.252.206.16的A记录

如果将范围缩小到您的组织,这几乎是不可能的。但是,您仍然需要枚举组织的DNS服务器上的所有正向查找区域,并检查每个A记录的地址。您发现ServerFault问题的答案将对该区域进行枚举。但是,您需要为此提供DNS管理员权限。

之所以变得如此复杂,是因为从技术上讲,正向和反向查找区域之间没有关系。对任何A记录都没有任何PTR记录(更不用说匹配的记录),没有技术上的要求。你可以有两个记录

foo.example.com.             A    192.168.23.42

17.13.113.10.in-addr.arpa.  PTR  foo.example.com.

没问题。或多个A记录,没有PTR记录。或没有A记录的PTR记录。

Microsoft的DNS服务器允许您将PTR记录与A记录相关联,但这只是一项便利功能。同样,域名系统对此关联没有技术要求。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

获取所有DNS记录

使用 Net_DNS2 获取所有记录类型

如何从 DNS 服务器获取所有记录?

获取Rails中模型类型的所有记录的所有关联数据?

Laravel 从表中获取所有记录,除了数据透视表中已经关联的记录

如何获取所有 Django 组并可选择获取关联的用户记录?

使用where子句获取具有关联记录数的所有类别

有什么方法可以获取特定域在全球范围内的所有DNS A记录?

如何从活动记录集中获取所有has_many关联

选择所有具有非空关联记录的记录

查找所有当前的DNS记录

查看关联记录中存在的所有记录

Sequelize:根据关联属于多个记录查找记录-但仍返回所有关联记录吗?

获取与节点关联的所有ImageField

获取并汇总所有关联的数据

如何查找具有特定关联值的所有记录?

查找具有特定值的所有关联的记录

如何直接从Route 53获取DNS A记录IP?

通过IP地址从Active Directory区域获取DNS记录

编写单个Rails活动记录查询以通过与两个表关联来获取所有项?

记录所有IP转发到端口

记录所有访客的IP地址

查找关联计数大于零的所有记录

在Rails中显示所有关联的记录信息

从关联的模型(表)中查找具有至少一个关联的所有记录

如何获取在Django中有很多关联记录

获取带有条件的关联记录数

SQL获取具有与特定值匹配的最新关联的记录

CloudKit:获取具有特定记录类型的所有记录?