dns-sd -R name type domain port [key=value ...]
dns-sd -B type domain
dns-sd -L name type domain
dns-sd -Q FQDN rrtype rrclass
dns-sd -C FQDN rrtype rrclass
dns-sd -P name type domain port host IP [key=value ...]
dns-sd -E | -F | -A | -U | -N | -T | -M | -I
dns-sd 命令是一种网络诊断工具,类似于 ping(1M) 或 traceroute(1M)。但是,与这些工具不同,其大多数功能不是在 dns-sd 可执行文件本身中实现,而是通过任何应用程序都可使用的库代码实现。dns-sd 使用的库 API 在 /usr/include/dns_sd.h 中进行了介绍。
dns-sd 命令主要用于交互使用。由于其命令行参数和输出格式可能会发生更改,因此从 shell 脚本调用该命令可能是无法预测的。此外,DNS 服务发现的异步性质使其无法轻易地用于面向脚本的编程。这种形式的异步交互最适合以下应用程序:多线程应用程序或使用主事件处理循环在击键、网络数据和其他异步事件发生时接收通知的应用程序。
支持以下选项:
在具有给定 name 和 type 的指定域中注册(通告)服务,以在当前计算机的指定 port 上侦听。
name 可以是包含合法 unicode 字符(包括没有任何限制的点、空格、斜杠、冒号等)的任意 unicode 文本,其最大长度是 63 个 UTF-8 字节。
type 的格式必须为 "_app-proto."_tcp" 或 "_app-proto_udp",其中 "app-proto" 是 http://www.dns-sd.org 中注册的应用程序协议名称,在服务类型 (RFC 2782) 链接下。
domain 是要注册服务的域。在当前实现中,仅支持本地多播域 "local"。将来可以在具有工作的 DNS 更新服务器 [RFC2136] 的任意域中注册。域 "." 表示“选择合适缺省值”,当前表示 "local" 域。
port 是从 0 到 65535 的编号,并且是服务侦听的 TCP 或 UDP 端口号。通过在端口 0 上注册服务,应用程序可以显式通告服务的不可用性。
存储在已通告服务的 DNS TXT 记录中的 key/value 对可能会选择性地介绍服务的其他属性。允许的键和值与 http://www.dns-sd.org 中注册的服务一起列在服务类型 (RFC 2782) 链接下。
浏览 domain 中 type 服务的实例。
有关有效的类型,请参见 http://www.dns-sd.org 中服务类型 (RFC 2782) 链接下的内容。忽略域名或使用 "." 意味着“选择合适缺省值”。
查找并显示联系和使用命名服务所需的信息。此信息包括可以使用该服务的计算机的主机名、服务侦听的端口号以及(如果有)说明服务属性的 TXT 记录属性。
在典型应用程序中,很少发生浏览,但每次使用服务时都发生查找(或“解析”)。例如,用户不会经常浏览网络以选择缺省打印机,但是选择了缺省打印机后,用户每次按 Cmd-P 进行打印时,该命名服务都将解析为其当前 IP 地址和端口号。
任何资源记录类型和类的通用查询。
任何资源记录类型和类的通用查询。此选项还重新确认每个查询结果。重新确认记录指示 mdnsd(1M) 验证记录的有效性。如果记录无效,mdnsd(1M) 会在守护进程高速缓存中刷新该记录,还会在网络上其他 mdnsd(1M) 高速缓存中刷新该记录。
在具有给定 name 和 type 的指定域中注册(通告)服务,该服务侦听指定端口且在其他主机上可访问该服务。此选项应该用于由代理通告可在其他主机上访问的服务。必须指定访问服务的主机名和 IPv4 地址。
发现建议的注册域。此选项返回建议的注册服务的域。通过查询 resolv.conf(4) 中的名称服务器返回建议的注册域。
发现建议的浏览域。此选项返回建议的浏览服务的域。通过查询 resolv.conf(4) 中的名称服务器返回建议的浏览域。
测试使用多播 DNS 注册服务,并测试使用多播 DNS 的 DNS 记录的添加、更新和删除操作。
测试使用多播 DNS 注册服务,并测试为使用多播 DNS 注册的服务更新 DNS TXT 记录。
测试为使用多播 DNS 注册的服务添加大型 NULL 记录。
测试为使用多播 DNS 注册的服务添加大型 TXT 记录。
测试创建具有多个 TXT 记录的注册。
测试注册并立即更新 TXT 记录。
以下命令通告此计算机的端口 515 上存在 LPR 打印服务,因此 DNS-SD 兼容打印客户机可以使用该服务:
dns-sd -R "My Test" _printer._tcp. . 515 pdl=application/postscript
要使该注册可用,端口 515 上应该提供 LPR 服务。通告不存在的服务起不了作用。
示例 2 通告 Web 页以下命令通告此计算机端口 80 上的 HTTP 服务器提供支持的 Web 页,因此该页将在 Safari 中的 Bonjour 列表上显示或在其他 DNS-SD 兼容 Web 客户机上显示:
dns-sd -R "My Test" _http._tcp . 80 path=/path-to-page.html示例 3 在本地网络上查找通告的 Web 页
以下命令在本地网络(Safari 显示的相同列表)上查找通告的 Web 页:
dns-sd -B _http._tcp
有关下列属性的说明,请参见 attributes(5):
|