【问题标题】:Zeroconf Name resolutionZeroconf 名称解析
【发布时间】:2011-02-27 16:27:21
【问题描述】:

我正在开发一个带有嵌入式网络服务器的控制设备。网络服务器为任何请求它的网络浏览器(从 Windows 浏览器、Mac 浏览器、iPhone android 等)提供控制接口。

我遇到的问题是一般地知道如何访问设备的一般方式。即在网络浏览器中输入什么地址。

对于我的用户来说,固定 IP 技术太高,而且可能会出错,因为我的设备可以插入许多不同的本地网络。使用 uPnp 服务发现需要在某些平台的客户端上运行软件,并且不像只输入网址那么自然。我想实现名称解析。

我当前的实现使用 netbios 协议。因此,在 Windows 浏览器中,我可以输入 //controller/ 并且它可以工作,但这不适用于 Mac 或智能手机。我还可以尝试实现 Apple 的 mDnsresponder,它应该让 Mac 和 iPhone 玩得开心(尽管我认为我仅限于 //controller.local/)。 Android、Symbian 等可能也存在类似的情况,但没有更通用的解决方案来创建一个我可以尝试的网络名称吗?

该平台目前基于 TI Cortex M3 处理器和 lwIP。

非常感谢任何有关如何找到解决方案的帮助或建议。

亲切的问候,

鲍勃

【问题讨论】:

标签: c zeroconf cortex-m3 lwip nameservice


【解决方案1】:

我认为您可以使用 DynDns (www.dyndns.org),您可以免费使用它。即使您无法获得固定的 IP 地址,您也可以使用它。在这种情况下,您将使用 dyndns 更新程序实用程序。你可以例如注册 ourCompanyName.dyndns.org,它将始终路由到您的本地计算机。

【讨论】:

    【解决方案2】:

    为了让 Windows 用户能够使用 Zeroconf“自动”找到您的设备,他们需要:

    1. 已安装 mDNS 守护程序(如您提到的 mDNSResponder,可从 Apple 免费获得)
    2. 安装第二个软件,该软件知道如何向 mDNS 守护程序发出查询并显示本地网络(即您设备的嵌入式 Web 服务器)上的可用服务

    Bonjour for Windows 捆绑了一个 Internet Explorer 插件,该插件足以满足第 2 项的需求,并且对于您的用户来说可能不是“太技术化”。 (他们只需要下载并安装 Windows 版 Bonjour 并勾选安装 Internet Explorer 插件的复选框。)Mac 用户可以使用 Safari 浏览器,它已经支持 Zeroconf。

    难题的最后一部分——也是最棘手的部分——是您必须修改自己的软件才能将控制器注册到“本地 mDNS 守护程序”。然而,没有这样的事情,大概是因为你的“控制设备”是一个嵌入式系统。因此,您需要编写自己的基本 mDNS 守护程序。 做起来并不难,您可以使用 Apple 的 mDNSPosix 代码作为起点。但是,根据您的硬件限制,这可能不可行。

    总而言之,Zeroconf 可能是一个棘手的协议堆栈。 “零配置”方面仅适用于用户体验。对于开发人员,它呈现出相当陡峭的学习曲线。如果您的用户通常只有一个单个您的设备实例在运行,那么这可能是矫枉过正。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-11
      • 2012-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-07
      相关资源
      最近更新 更多