我正在尝试在我的Windows 7机器上使用“dns-sd”命令行工具。
我已经可以做点什么了 例如,我可以使用“dns-sd -R …”注册服务。 我也可以使用“dns-sd -B …”浏览器(请参阅)注册的服务。 我还想念的是如何取消注册服务。
在我input“dns-sd -R …”的那一刻,dns-sd没有将我返回到命令提示符。 要返回到命令提示符,我需要按Ctrl-C。 服务保持注册,直到我按Ctrl-C。
我想要的是在后台系统中运行“dns-sd -R …”,然后我想有可能从命令行注销一个服务。
还有一件我不明白的东西就是“查找服务”的意思。 在我看来,注册一个服务就足够了,看到它然后取消注册。 但显然我需要查找一个服务。 这是什么意思,为什么我需要这样做?
补充:如有人问,我澄清。 我指的是我在Windows 7中使用的“dns-sd”命令行工具。我认为这个命令是Windows的Bonjour软件(来自Apple)的一部分。 那么在安装Bonjour之前,我没有检查过是否有这个命令,但是我想我没有。 所以,我的问题是关于这个命令。
我不清楚你到底在做什么,但听起来你可能会使用错误的工具。 dns-sd是一个用于多播DNS和DNS服务发现(DNS-SD)的命令行testing工具。 顾名思义,DNS服务发现的目的是宣传networking服务。 DNS-SD操作如下:
列举 :
发现主机上configuration的浏览和注册域。 “.local”将始终返回,广域(例如:example.com)也可以使用:
dns-sd -E 浏览:
浏览服务实例(可选,在特定的域中):
dns-sd -B _http._tcp dns-sd -B _http._tcp dns-sd.org 解决:
将服务实例(由Browse返回)parsing为主机和端口以连接到包含任何服务特定参数的文本logging:
dns-sd -L \ *\ Google,\ searching\ the\ Web _http._tcp dns-sd.org 寄存器:
注册服务实例,以便浏览给定域的其他客户端可以浏览和parsing服务实例。
dns-sd -R Example _http._tcp local 80 你能更具体地说明你在做什么?
苹果的mDNS守护进程注销服务的方式是在注册服务时向注册进程提供服务描述符,并且需要该注册描述符来注销该服务。 这意味着通常只有注册a的进程才有注销的必要信息。 一个进程无法启动并注销该进程没有注册的服务。
这种devise的一个原因是提供服务的过程也应该负责注册和注销它,这确保了服务注册的状态与实际的服务可用性同步。
当使用dns-sd进行代理注册时,进程将继续运行,以便closures它时,该进程可以进行正确的注销。 如果您需要长期的服务注册,您需要安排dns-sd过程长久。 Launchd可以用来在OS X上pipe理这个。
还有一件我不明白的东西就是“查找服务”的意思。 在我看来,注册一个服务就足够了,看到它然后取消注册。 但显然我需要查找一个服务。 这是什么意思,为什么我需要这样做?
浏览服务只是告诉你什么样的服务实例存在; 它没有提供足够的信息来实际连接和使用它们。 要使用服务,您需要通过浏览和“查找”或“parsing”服务实例来获取用户友好名称。 这告诉你连接到它所需的附加信息:主机,端口号等
这减less了stream量(额外的数据可能相对较大,所以您不希望为每个服务实例获取它),也将稳定的服务实例名称从可能不太稳定的服务实例连接数据中分离出来,类似于主机名和IP地址是分开的。