✅ 常见 DNS / mDNS 资源记录类型(type)
| 类型 (type) | 名称 | 含义 | 在 mDNS 中的用途 |
|---|---|---|---|
1 | A | IPv4 地址 | 提供服务实例对应的 IPv4 地址 |
28 | AAAA | IPv6 地址 | 提供服务实例对应的 IPv6 地址 |
12 | PTR | 指针记录 | 用于从服务类型查找服务实例名(如 _airplay._tcp.local -> MyTV._airplay._tcp.local) |
33 | SRV | 服务定位记录 | 告诉你服务运行在哪个主机、哪个端口 |
16 | TXT | 文本记录 | 提供服务的附加信息(例如支持的功能、版本等) |
255 | ANY | 通配查询 | 表示希望服务器返回该名称下的所有类型的记录(用于调试) |
5 | CNAME | 规范名称 | 域名别名,不常用于 mDNS |
15 | MX | 邮件交换记录 | 不用于 mDNS,但常见于标准 DNS |
6 | SOA | 起始授权记录 | 用于 DNS zone,不用于 mDNS |
2 | NS | 域名服务器 | 不常用于 mDNS |
41 | OPT | 扩展选项 | 用于 EDNS(扩展 DNS) |
🔄 一次完整的 mDNS 查询交互中,各类型作用如下:
-
PTR
- 查询某服务类型有哪些实例(例如:
_airplay._tcp.local) - 响应中列出每个实例名(如
MyTV._airplay._tcp.local)
- 查询某服务类型有哪些实例(例如:
-
SRV
- 通过实例名查询具体运行在哪台主机、哪个端口
- 例如:
MyTV._airplay._tcp.local→hostname.local, port 7000
-
TXT
- 返回该服务实例的功能描述
- 如:
features=0x7,model=AppleTV3,2,deviceid=00:11:22:33:44:55
-
A / AAAA
- 查询
hostname.local的 IP 地址(IPv4 或 IPv6)
- 查询
📦 一个典型 AirPlay 服务发现中用到的记录类型
text
复制编辑
1. 查询 _airplay._tcp.local → type=PTR
2. 得到 MyTV._airplay._tcp.local
3. 查询 MyTV._airplay._tcp.local → type=SRV 和 type=TXT
4. 得到主机名 host=apple-tv.local, port=7000, features=xxx
5. 查询 apple-tv.local → type=A 或 AAAA