要获取一个域名下的所有IP,核心做法是结合DNS解析、子域枚举、证书透明度日志和历史DNS数据库四个渠道交叉收集,再通过批量Ping和端口探测验证存活,才能拿到尽可能完整的IP清单。
DNS解析获取IP地址的方法:为什么只查A记录远远不够
很多朋友第一次接触域名查IP,习惯性用Ping命令或者在线工具看主域名指向哪个IP,这样做确实能拿到一个IP,但主域名的A记录通常只暴露CDN节点或防火墙地址,真正的源站IP并不会出现在这里,想用DNS解析获取IP地址方法把整个域名的IP找全,得把视角放到子域名和不同类型记录上。
从NS、MX、TXT记录里找线索
除了A记录和AAAA记录,NS记录和MX记录也值得看,NS记录指向的DNS服务器本身可能托管在同一台机器上,MX记录指向的邮件服务器往往和Web服务器不在同一IP段,但都属于这个域名下的资产,用dig命令可以一次性查全:
dig example.com ANY
有经验的渗透测试人员会特别关注TXT记录,因为一些企业会把SPF记录里写得很详细,直接暴露了多个IP段,例如v=spf1 ip4:203.0.113.0/24 ip4:198.51.100.7 -all,这条记录就相当于把内部网段公开了。
主域名查不到,别忽略子域名
域名下所有IP这个问题,指的是这个域名及其全部子域名解析出的所有IP,一个大型网站的子域名可能有几百个,每个子域名都可能是独立IP,用nslookup逐个去查子域名的A记录,工作量不小,但这是最基础的操作路径:
nslookup subdomain.example.com 8.8.8.8
这里建议指定公共DNS服务器,避免本地运营商DNS缓存导致结果不准确。
域名IP查询工具哪个好用?从在线平台到命令行各有分工
要回答域名IP查询工具哪个好用,得先看你是什么场景,如果只需要查一个域名的几个IP,在线查询平台最方便;如果要给整个域名做资产盘点,建议用命令行工具批量处理。
在线查询平台:适合快速定位
| 工具名称 | 核心功能 | 免费程度 | 使用场景 |
|---|---|---|---|
| SecurityTrails | 历史DNS记录、子域名列表 | 部分免费 | 想看之前的IP记录 |
| ViewDNS.info | 多条件域名反查IP | 大部分免费 | 快速查子域名和同IP网站 |
| DNSDumpster | 子域名+IP可视化地图 | 免费 | 直观查看域名解析关系 |
| 微步在线 | 威胁情报、域名信息 | 免费注册 | 国内站点查询更快 |
以DNSDumpster为例,它会把域名下的子域名和对应IP用图形化方式展示出来,还能顺便显示这些IP归属的ASN和运营商信息。对于一个普通网站来说,这种方式已经比手动敲命令直观很多。
命令行工具:批量收集时效率占优
如果你要查的域名有几十上百个子域名,在线平台翻页会翻到崩溃,行业共识认为,命令行工具在批量获取域名IP时是最高效的,推荐组合是:
- subfinder:从证书透明度、DNS数据集、被动DNS等多个来源枚举子域名
- massdns:高速DNS解析器,可以对上万个子域名做批量解析
- httpx:解析后对IP发送HTTP请求,确认哪些IP是真正提供Web服务的
subfinder -d example.com -silent | massdns -r resolvers.txt -t A -o S -w results.txt
用这套组合拳,几分钟内就能拿到几百个子域名解析出的IP集合。
证书透明度日志:批量获取子域名IP的隐藏途径
证书透明度(Certificate Transparency,简称CT)是近年来查询子域名最有效的数据源之一,行业共识是,只要一个域名申请过SSL证书,证书就会记录在公开日志中,而证书里往往包含大量未在DNS区域中公开的子域名。
用crt.sh挖出一个域名的完整证书记录
crt.sh是一个免费的正向查询平台,你输入域名,它能反馈该域名名下所有被签发过SSL证书的子域名,这个数据库覆盖了全球绝大多数CA机构签发的证书。
在你需要批量获取子域名IP时,可以这样操作:
- 访问crt.sh,输入域名
- 点击Search,页面会列出所有证书
- 将列表中的子域名提取出来,合并去重
- 用massdns或写个Python脚本对子域名做批量解析
import requests, re
from dns import resolver
domain = "example.com"
crt_data = requests.get(f"https://crt.sh/?q=%25.{domain}&output=json").json()
subdomains = set(re.findall(r"[w.-]+.{domain}", str(crt_data)))
这个脚本的思路是把证书里的子域名全部提取出来,然后交给dns库做解析。
用Censys和Shodan从另一个维度找IP
Censys和Shodan是互联网资产测绘平台,它们通过主动扫描全网IP并收集SSL证书信息,然后建了反向索引。你在Censys上搜索example.com,它会返回所有使用这个域名证书的IP,包括443端口、8443端口等不同服务,这个方法的优势是能发现那些没有DNS记录,但实际在用该域名证书的僵尸资产。
对这种方式和DNS查询做个对比:
| 查询方式 | 覆盖范围 | 数据时效 | 适合场景 |
|---|---|---|---|
| DNS查询 | 实时解析记录 | 当前时刻 | 日常快速查询域名IP |
| CT日志查询 | 历史证书记录 | 近几周内 | 获取子域名和批量获取域名IP |
| 主动测绘平台 | 全网扫描数据 | 数周前 | 发现无DNS但占用证书的IP |
全域段IP获取后的验证:Ping不通不代表IP不存在
即便你从上述渠道拿回了一堆IP,也不能直接交差,有的子域名指向的内网IP或防火墙IP,公网Ping是不同通的,但HTTP/HTTPS服务可能仍然对外开放,这就需要用端口探测来确认。
用Naabu或Masscan快速验证IP存活情况
Naabu是ProjectDiscovery团队开发的端口扫描器,它比Nmap快得多,适合对大量IP做快速端口探测,下面是一个简洁命令示例:
naabu -l ips.txt -top-ports 1000 -silent
这个操作会输出一组IP+端口的组合,按这个列表再去访问验证,就能确定哪些IP是真正提供服务的,哪些只是个解析记录。
主动项目里由IP反查域名信息
反向获取到IP后,把IP整理到Excel里,再借助在线工具做IP反查域名,多个域名指向同一个IP是常见的虚拟主机现象,一个IP可能承载几十个不同域名。如果你在整理域名与IP归属表,建议把反查结果也记下来,这样便于后续进行更完整的网络资产分类。
关于免费工具和付费工具的差距
聊到域名IP查询工具,免不了涉及免费和付费的对比,过去有好多朋友纠结于”为什么我用免费工具查出来的IP比付费工具少”。
这背后的原因在于数据源广度,免费工具一般只接入1-2个数据源,比如仅做DNS解析和基础子域字典枚举。付费工具(如SecurityTrails、ZoomEye的会员服务)则接入了大量被动DNS数据库和威胁情报数据,其历史IP变更记录可追溯数年,另外付费工具的API接口批量查询限额也在压制着使用深度,免费版本限制每天几十次查询,可付费版本则能提供上万次配额。
我之前给一家做电商平台的朋友做了一个域名资产梳理,单看DNS解析只找到6个IP,但把证书日志里50多个子域名解析出来,再经过存活验证,最终数据变成了20多个IP。不同工具的探测维度差异是决定结果完整度大小的关键,与工具本身谁更”厉害”没有直接关系。
隐藏IP的常见手段与反制识别法
既然要获取工作环境中的完整IP,清楚如何能隐藏和保护真实IP同样有价值,现在不少网站套了CDN,CDN后的回源IP才是原始的真实服务器,你把所有子域名IP找出来后,仍然要将CDN节点IP与真实出口IP进行识别。
识别方法很简单:
- Ping不同地区的节点:如果一个域名全国各地的Ping值差别不大且绕到了类似Cloudflare、简米云的节点,大概率是套了CDN
- 检查证书的SAN字段:不同IP上的证书内容往往不完全一致,只有在源站IP上的证书才包含完整SAN信息
- 尝试IP直接访问:如果这个IP直接访问返回的是默认站点或该域名的站点,那它就是源站IP
如果你的域名下某个子域名的历史DNS记录曾经直接解析到源站IP,后来才接入了CDN,可以去微步在线这类平台搜索该域名的历史解析记录来找到这个IP。
域名下所有IP采集流程总结
完整操作流程可归纳为六个关键环节:
- 基础DNS收集:查主域名的A、AAAA、MX、NS、TXT记录
- 子域名枚举:用crt.sh、subfinder收集全部子域名
- 批量解析:对子域名批量请求DNS记录坐标
- 测绘平台补充:在Censys/Shodan搜索证书关联的全部IP
- 历史数据对齐:在SecurityTrails查看历史DNS记录
- 存活验证:用Naabu或httpx对这些IP做端口与协议探测
业内专家提醒,以上方法是基于公开信息的安全研究场景,若应用到真实目标时,应确保已获得合法授权,尤其是涉及批量扫描的行为。
获取域名下所有IP不是单靠一条命令能完成的,核心思路是把DNS静态记录、历史档案、证书日志和主动测绘四个维度的数据聚合起来,循环修正,保留下来的才是你需要的那份可靠清单。
域名查IP常见问题解答
为什么同一个域名在不同工具里查到的IP数量不一样?
不同工具的数据源不一样,有的只查当前DNS解析结果,有的基于CT证书日志,有的会分析历史DNS变化。查询结果差异的本质是数据覆盖面不同,建议用多个工具互相补充验证。
域名下所有IP查询是否为合法操作?
查询公开DNS记录、证书日志属于访问公开数据,本身不违法,但如果你对获取到的IP进行扫描、渗透测试,就必须先获得目标系统的明确授权。未取得授权的主动扫描在多数司法管辖区内属于违法行为。
查询结果中同时出现IPv4和IPv6地址,如何取舍?
有AAAA记录的域名会返回IPv6地址,这是正常的,当前互联网访问仍以IPv4为主,但业务确实开启了IPv6服务的网站也越来越多。不需要特意丢弃IPv6结果,标记出来即可,后续扫描工具在双栈环境下优先选择IPv4会更方便。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/673914.html



