我对术语有点困惑。我想开始使用你好。作为第一步,我尝试找到一种简单的方法来使用它。我认为我可能可以从命令行调用 Bonjour 来注册和发现服务。
当我向其他人询问如何操作时,他们告诉我可以使用 mDNS(适用于 Mac 和 Linux,但不适用于 Windows)。他们还告诉我可以使用“dns-sd”(适用于 Windows)。他们告诉我“dns-sd”只是 mDNS 的一个别名。
但是!后来我发现 DNS 服务发现和多播 DNS 是两个不同的东西(它们是兼容的,并且一起使用时效果特别好,但它们彼此不需要)。
此外,在我看来,mDNS 和 DNS-SD 是 Bonjour 三个主要组件中的两个。对吗?我可以在没有 Bonjour 的情况下使用它们吗?在我的 Windows 7 上,我安装了 Bonjour,并且能够在命令行中运行“dns-sd”。但我无法运行 mDNS。
所以,我现在有点困惑。有人能解释一下情况吗?
答案1
我刚刚回答了你之前的问题这里。
我认为这个答案涵盖了你在这里提出的问题,但以防万一:
Bonjour 由 3 个部分组成:
1. IPv4(和 IPv6)链路本地寻址(IPv4 中的 169.254.0.0/16 地址)。2
. 多播名称解析(通过 mDNS 协议)。这允许临时或隔离 LAN 上的主机通过多播 DNS 查询和响应自动将主机名映射到彼此的 IP 地址,而无需传统的单播 DNS 服务器。3
. DNS 服务发现,允许您发现给定类型的服务的名称和详细信息。在本地网络上,DNS 服务发现通常也通过 mDNS 完成,但通过“广域 Bonjour”,您实际上可以通过单播 DNS 服务器对整个域进行 DNS 服务发现。
dns-sd 工具可让您执行第 2 部分和第 3 部分所需的所有查询/查找,我在回答您的另一个问题时给出了相关示例。
我认为您感到困惑的部分原因是有些命令行工具的名称与协议相同。mDNS 是多播域名服务协议的名称,但它也是用于发送 mDNS 协议查询和接收响应的常用命令行工具的旧名称。“dns-sd”是用于执行 DNS 服务发现以及执行多播名称解析查找的最常用命令行工具的当前名称。这两个命令行工具通常调用由“mDNSResponder”后台进程/服务/守护程序处理的 API。