您可以使用 dns-sd 命令作为网络诊断工具来浏览和搜索服务,这类似于使用 ping 或 traceroute 命令的方式。
dns-sd 命令主要以交互方式进行使用,这主要是因为它的命令行参数和输出格式在以后可能会更改,这使得通过 shell 脚本调用它具有不可预测性和风险。此外,DNS 服务搜索 (DNS service discovery, DNS-SD) 的异步性质使其无法轻易地用于面向脚本的编程。
有关完整信息,请参见 dns-sd(1M) 手册页。要将 DNS 服务纳入应用程序中,请参见 libdns-sd (3DNS_SD) 手册页。
下面是使用 DNS 服务搜索来通告服务的示例。
示例 1 通告打印服务以下命令通告 LPR 打印服务存在于名为 My Test 的系统的端口 515 上,因此它将可供 DNS-SD 兼容打印客户机使用:
# dns-sd -R "My Test" _printer._tcp. . 515 pdl=application/postscript
要使此注册可用,必须在端口 515 上提供 LPR 服务。
示例 2 通告 Web 页以下命令通告 My Test 系统上的 HTTP 服务器正通过端口 80 提供的一个 Web 页。该 Web 页将出现在 Safari 中的 Bonjour 列表中和其他 DNS-SD 兼容 Web 客户机中。
# dns-sd -R "My Test" _http._tcp . 80 path=/path-to-page.html