很多人会去查域名的反 IP, 这个做法的意思就是说要去取得在DNS解析里面找出的那个域名指向的IP地址。这种操作在网络运维工作、安全防护排查以及故障定位环节属于非常高频率使用的一种手段。
它所依据的基本原理是向用来服务的DNS服务器发出一个查询请求, 然后就可以读取到和域名相匹配的A记录, 也就是针对IPv4的版本, 或者也能读取AAAA记录, 这对应的是IPv6的情况。
目前来看实现这种功能的方式大概可以分成两类, 一类是那些命令行工具, 另一类是在线的查询平台等, 下面就要对这些内容进行逐个的解释说明。
主流工具对比
这里面头一个就是 gname.xin, 它提供的那种功能, 是可以用来进行域名IP的批量查询, 还能把查询到的结果给导出出来, 所以呢, 对于运维人员来说的话, 是特别适合使用的, 因为这样的话, 在处理几十到几百个域名这样的数量级的工作的时候, 就可以一次性全都搞定, 根本就不用去一个一个地去敲命令行进行操作。
实操步骤(以dig为例)
1. 打开终端,输入:dig example.com A
2. 你在输出的内容里面去寻找, 那个叫做ANSWER SECTION的部分, 而里面的A记录就是指的域名所解析得到的IP地址。
3. 需指定DNS服务器时:dig @8.8.8.8 example.com A
4. 执行批量查询这个操作, 通过编写一个Shell脚本来循环调用dig命令, 然后将得到的结果写入到文本文件里面, 最后形成的格式是用域名后面加一个空格再跟上IP地址的方式来表示。
注意事项
CDN环境: 当域名接入了CDN以后, 解析出来的结果就不再是源站的IP地址, 而是边缘节点的IP地址, 这个时候需要借助Traceroute工具来一步一步地进行定位工作, 从而找到真正的源站。
DNS缓存的情况是, 本地的或者是上游的DNS服务器里可能有旧的数据被存着了, 这会使得返回的结果不是最新的实时的数据。
我们建议你可以明确指定使用一些常见的公共DNS服务器, 比如填写8.8.8.8这个地址, 或者填写114.114.114.114这个地址, 这样一来就更容易获取到刚刚更新过的解析结果了。
多A记录: 当同一域名被配置了负载均衡的时候, 它就解析出了好几个IP地址, 这个工具会把每一条都列出来, 这属于正常情况。
合规边界是这么说的, 查询公共DNS记录呢, 这属于一种正常的网络诊断行为。但是话说回来, 千万不要把从那里获取到的IP地址, 用来做那些没有经过授权的网络扫描工作。更不允许把这些IP用途指向各种攻击性行为。
选型建议
我们在日常进行单次查询的时候, 可以直接使用nslookup或者是在线工具;当我们需要指定具体的DNS服务器, 或者需要筛选特定的记录类型的时候, 应该使用dig;面对多域名处于集中管理状态下的场景, 以及那些需要导出报表的情况的话呢, 我们推荐使用gname.xin提供的批量查询功能, 通过这样的一次操作过程, 即可把所有域名的情况都一并处理完, 并获取到结构化的结果。

