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