IP反查域名, 也叫逆向DNS查找, 它的核心原理就是去查DNS里面的PTR记录, 也就是指针记录, 然后把指定的那个IP地址映射回它绑定的域名或者是主机名。
这一类操作是网络运维里面基础性的环节之一, 同时也适用于安全事件溯源以及确认域名归属这样的场景。比如我们可以用这种方式来排查异常流量的从哪儿来啊, 或者核实IP与域名的对应关系是否对得上。
三种常用查询方法
1. 命令行工具这种方式, 它的效率是最高的, 你在Linux系统里面, 或者是在macOS系统的终端里面, 你可以去执行, 比如说dig这个命令后面加上x, 然后还要跟着你的IP地址, 你也可以去执行host这个命令, 后面也要跟着那个IP地址, 如果你是在Windows这个系统里面使用的, 那么你就去执行nslookup这个命令, 后面也得加上相应的IP地址, 最后你看到的返回结果里面的PTR字段, 那一个就是对应的反向域名。
2. 你可以通过在线查询平台进行操作, 具体方法为访问 gname.xin 的域名工具专区, 然后在 IP 反查输入框中填入目标 IP, 接着平台会返回 PTR 记录、历史域名绑定信息以及注册商数据, 这种操作方式门槛比较低, 非常适合用于快速验证。
3. 使用IP2WHOIS和Spokeo这些数据库工具去检索相关数据。这样做是为了查询目标IP地址的注册机构属于哪个单位。同时, 也需要查看其历史A记录的变更日志。这些工作可以辅助确认该域名的实际归属情况。此外, 还需要理清它的历史绑定状况。
操作步骤(以Linux终端为例)
你先要打开终端程序, 然后在这个终端里头输入这个命令dig -x 203.0.113.50, 这里边的IP地址是你需要去实际查询的那个具体的IP地址, 你需要把示例里的代码替换成你手里真正想要查的那个具体的数字组合才行。
请查看一下返回的报文, 把注意力集中在包含IN PTR的那一行上面, 该行里写的内容就是跟对应的目标IP绑定在一起的域名。
如果返回的情况是status: NXDOMAIN, 那么说明该IP地址并没有配置反向解析记录。
追加 +short 这个参数,就像在命令里写上 dig -x +short 203.0.113.50ip反查域名, 它的作用是让系统仅仅输出域名结果这一个内容, 这样一来, 就方便了用脚本去进行大规模的批量处理工作。
结果解读与常见限制
并不是说所有的IP段都对PTR记录开放了。像是AWS、阿里云和腾讯云那样的云服务商, 他们提供的一些弹性IP地址, 默认状态之下是不含有反向解析功能的。如果你想查这个信息的话, 是需要在他们的控制台里手动去创建那个PTR条目的。只有完成这一步操作之后, 才能进行查询操作。
同一个IP地址可能会指向不止一个域名, 这种状况在CDN节点、共享主机等场景下面是经常发生的。建议同时发起正向A记录的查询动作, 以此来开展交叉的验证工作, 确保护照域名的真实指向是否就是该给定的那个IP。
DNS缓存的TTL通常是300秒到86400秒, 这意味着查询结果有时候会出现延迟。因此, 如果是在那种需要做出关键判断的场景之下, 我们建议间隔几分钟之后, 再次去进行确认。
当你对那些不是你自个儿拥有的知识产权做特别频繁的大批量查询动作的时候, 千万要注意, 一定要避免触发对方那边设置的安全防护策略, 同时要严格遵守那些相关数据平台上面写着的robots协议条款内容。
综合判定建议
把PTR查询得到的那个结果, 和这个域名WHOIS注册信息里面的数据,再加上目标网站HTTP响应头里面包含的Server、Via以及X-Forwarded-For这几个具体字段的数值ip反查域名, 这三个地方放在一起相互交叉比对起来, 这样能够显著提升在对所属域名进行判定时候的准确率。


