【问题标题】:Can I use Bonjour from command line?我可以从命令行使用 Bonjour 吗?
【发布时间】:2011-01-23 16:16:54
【问题描述】:

是否可以从命令行使用 Bonjour?例如,如果我想注册一个服务,我输入类似的内容:bonjour -register service_name port。然后 Bonjour 为我的服务分配一个免费 IP。或者,例如,如果我想查看可用服务的列表,我可以输入如下内容:bonjour -showServices。然后我得到所有可用服务的列表及其名称、IP 地址和端口。有这样的东西吗?

我对可用的文档感到有些困惑。比如here,在我看到的文档开头:

要注册您的服务,请致电 DNSServiceRegister。

我应该在哪里调用它?在命令行中?在 Java 中?在 C++ 中?在蟒蛇?没有提供这种上下文有点奇怪。

总的来说,我只找到有关 zeroconf 和 Bonjour 的一般信息(它应该做什么)。但我找不到具体而简单的东西。像 Bonjour 的“Hello World”使用示例。

有人可以帮我吗?

【问题讨论】:

  • 非常感谢您的回答。他们提供帮助,但仍然没有得到我的问题的答案:“我可以从命令行使用 Bonjour 吗?”。 Max,mDNS 不适用于 Windows(我需要)。 jdizzle,dns-sd 非常接近我的需要,但它不是 Bonjour,对吧?可能是 dns-sd 被 Bonjour 使用了?
  • 我发现了一个从命令行实际使用 Bonjour 的示例,用于在另一台不支持 mDNS 的机器上宣传打印机。您可能会发现它回答了您的一些问题:playcontrol.net/ewing/jibberjabber/…
  • dns-sd 是一个命令行工具,用于注册/浏览 bonjour 公告。这正是您所说的您想要的,但我敢打赌,您真正想要的是供您的应用程序使用的 bonjour API,它也存在。

标签: networking bonjour zeroconf


【解决方案1】:

dns-sd 是适用于 Windows 和 Mac OS X 的命令行程序。

我经常使用它通过 ssh 在互联网上传输 iTunes 共享。我的典型用途是dns-sd -P my_music _daap._tcp. local 3690 localhost 127.0.0.1。这假设我已经在 localhost 端口 3690 上设置了一个 ssh 隧道侦听到外部网络上共享 iTunes 的主机的端口 3689。这会在 iTunes 中出现一个名为“my_music”的小 iTunes 共享图标。

【讨论】:

    【解决方案2】:

    mDNS 是 dns-sd 工具的旧版本。它们都是由 Apple 编写的用于与 Bonjour 交互的命令行工具。

    您可以使用命令行工具对 Bonjour 做一些事情,但要引用 dns-sd 手册页:

    dns-sd 命令主要用于交互式使用。因为它的命令行参数和输出格式可能会发生变化,所以从 shell 脚本调用它通常会很脆弱。

    如果您希望通过脚本语言执行 DNS 服务发现操作,那么最好的方法不是执行 dns-sd 命令然后尝试破译文本输出,而是直接调用 DNS- SD API 使用您选择的语言的绑定。

    例如,如果您使用 Ruby 进行编程,则可以使用 http://rubyforge.org/projects/dnssd/ 中记录的 dnssd 包直接调用 DNS-SD API。 其他语言的类似绑定也在开发中。

    例如,您询问了“DNSServiceRegister”,它是一个 C 函数:
    http://developer.apple.com/library/mac/#documentation/Networking/Reference/DNSServiceDiscovery_CRef/dns_sd_h/index.html#//apple_ref/c/func/DNSServiceRegister

    【讨论】:

      【解决方案3】:

      是的,这当然是可能的。查看mDNS 的手册页

      【讨论】:

      • 但我认为 mDNS 适用于 Mac OS,不是吗?我需要使用 Windows XP。
      • 顺便问一下,mDNS 是 Bonjour 的一部分吗?或者,mDNS 和 Bonjour 有什么关系?
      • 是的,mDNS 是一个 Mac OS/UNIX 程序。 mDNS 是 Bonjour(以前称为 Rendezvous)的一部分,它是 Apple 对 Zeroconf 网络的实现。看看苹果网站上的参考资料:developer.apple.com/networking/bonjour/index.html
      • Windows 有类似的东西吗?
      • 我不确定命令行工具是否是 Apple Bonjour for Windows 的一部分。为什么不下载并检查?如果您注册一个(免费)ADC 帐户,相信您也可以下载源代码。
      猜你喜欢
      • 2013-07-14
      • 2013-12-12
      • 1970-01-01
      • 2021-04-11
      • 2016-11-15
      • 2019-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多