手册页部分 1M: 系统管理命令

退出打印视图

更新时间: 2014 年 7 月
 
 

dns-sd(1M)

名称

dns-sd - 多播 DNS (Multicast DNS, mDNS) 和 DNS 服务发现 (DNS Service Discovery, DNS-SD) 测试工具

用法概要

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 服务发现的异步性质使其无法轻易地用于面向脚本的编程。这种形式的异步交互最适合以下应用程序:多线程应用程序或使用主事件处理循环在击键、网络数据和其他异步事件发生时接收通知的应用程序。

选项

支持以下选项:

-R name type domain port [key=value ...]

在具有给定 nametype 的指定域中注册(通告)服务,以在当前计算机的指定 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) 链接下。

-B type domain

浏览 domaintype 服务的实例。

有关有效的类型,请参见 http://www.dns-sd.org 中服务类型 (RFC 2782) 链接下的内容。忽略域名或使用 "." 意味着“选择合适缺省值”。

-L name type domain

查找并显示联系和使用命名服务所需的信息。此信息包括可以使用该服务的计算机的主机名、服务侦听的端口号以及(如果有)说明服务属性的 TXT 记录属性。

在典型应用程序中,很少发生浏览,但每次使用服务时都发生查找(或“解析”)。例如,用户不会经常浏览网络以选择缺省打印机,但是选择了缺省打印机后,用户每次按 Cmd-P 进行打印时,该命名服务都将解析为其当前 IP 地址和端口号。

-Q FQDN rrtype rrclass

任何资源记录类型和类的通用查询。

-C FQDN rrtype rrclass

任何资源记录类型和类的通用查询。此选项还重新确认每个查询结果。重新确认记录指示 mdnsd(1M) 验证记录的有效性。如果记录无效,mdnsd(1M) 会在守护进程高速缓存中刷新该记录,还会在网络上其他 mdnsd(1M) 高速缓存中刷新该记录。

-P name type domain port host IP [key=value ...]

在具有给定 nametype 的指定域中注册(通告)服务,该服务侦听指定端口且在其他主机上可访问该服务。此选项应该用于由代理通告可在其他主机上访问的服务。必须指定访问服务的主机名和 IPv4 地址。

-E

发现建议的注册域。此选项返回建议的注册服务的域。通过查询 resolv.conf(4) 中的名称服务器返回建议的注册域。

-F

发现建议的浏览域。此选项返回建议的浏览服务的域。通过查询 resolv.conf(4) 中的名称服务器返回建议的浏览域。

-A

测试使用多播 DNS 注册服务,并测试使用多播 DNS 的 DNS 记录的添加、更新和删除操作。

-U

测试使用多播 DNS 注册服务,并测试为使用多播 DNS 注册的服务更新 DNS TXT 记录。

-N

测试为使用多播 DNS 注册的服务添加大型 NULL 记录。

-T

测试为使用多播 DNS 注册的服务添加大型 TXT 记录。

-M

测试创建具有多个 TXT 记录的注册。

-I

测试注册并立即更新 TXT 记录。

示例

示例 1 通告打印服务

以下命令通告此计算机的端口 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)

属性类型
属性值
可用性
service/network/dns/mdns
接口稳定性
Volatile(可变)

另请参见

mdnsd(1M)ping(1M)ping(1M)resolv.conf(4)attributes(5)