Zeroconf Разрешение имени - PullRequest
7 голосов
/ 04 июня 2010

Я занимаюсь разработкой устройства управления со встроенным веб-сервером. Веб-сервер предоставляет интерфейс управления любому веб-браузеру, который запрашивает его (из браузеров Windows, Mac, iPhone и Android и т. Д.).

Проблема, с которой я сталкиваюсь, заключается в общем способе узнать, как получить доступ к устройству. то есть какой адрес набирать в веб-браузере.

Фиксированные IP-адреса слишком сложны для моих пользователей и могут работать неправильно, поскольку мое устройство может быть подключено ко многим различным локальным сетям. Использование службы обнаружения uPnp требует, чтобы программное обеспечение работало на клиенте для некоторых платформ, и это не так естественно, как просто набирать веб-адрес. Я хочу реализовать разрешение имен.

Моя текущая реализация использует протокол netbios. Поэтому из браузера Windows я могу набрать // controller /, и это работает, но это не работает с Mac или смартфонами. Кроме того, я могу попробовать реализовать Apples mDnsresponder, который должен сделать Mac и iPhone счастливыми (хотя я думаю, что тогда я ограничен //controller.local/). Может быть, подобные вещи существуют и для Android, Symbian и т. Д., Но нет ли более универсального решения для создания одного сетевого имени, которое я мог бы попробовать?

В настоящее время платформа основана на процессоре TI Cortex M3 и lwIP.

Любая помощь или предложения по поиску решения приветствуются.

С уважением,

Bob

Ответы [ 2 ]

1 голос
/ 29 сентября 2011

Чтобы пользователи Windows могли «автоматически» находить ваше устройство с помощью Zeroconf, им необходимо:

  1. Установлен демон mDNS (например, упомянутый вами mDNSResponder , доступный бесплатно у Apple)
  2. У вас установлено второе программное обеспечение, которое знает, как отправлять запросы демону mDNS и отображать доступные сервисы в локальной сети (т. Е. Встроенном веб-сервере вашего устройства)

Bonjour для Windows поставляется в комплекте с плагином Internet Explorer, который подходит для элемента № 2 и может быть не слишком техническим для ваших пользователей. (Им просто нужно загрузить и установить Bonjour для Windows и установить флажок для установки плагина Internet Explorer.) Пользователи Mac могут просто использовать браузер Safari, который уже поддерживает Zeroconf.

Последняя часть головоломки - и самая хитрая часть - это то, что вам придется изменить свое собственное программное обеспечение, чтобы зарегистрировать свой контроллер в "локальном демоне mDNS". Однако, по-видимому, такого нет, потому что ваше «устройство управления» является встроенной системой. Так что вам нужно написать свой собственный демон mDNS. Это не , что трудно сделать, и вы можете использовать код mDNSPosix от Apple в качестве отправной точки. Но, в зависимости от ваших аппаратных ограничений, это может оказаться невозможным.

В целом, Zeroconf может быть сложным стеком протоколов для работы. Аспект «нулевой конфигурации» относится только к опыту пользователя. Для разработчика это довольно крутая кривая обучения. Если у ваших пользователей обычно работает только один экземпляр вашего устройства, это может быть излишним.

1 голос
/ 22 февраля 2011

Я думаю, что вы можете использовать DynDns (www.dyndns.org), это бесплатно для того, что вы пытаетесь сделать. Вы можете использовать его, даже если у вас нет возможности получить фиксированный IP-адрес. В этом случае вы бы использовали утилиту обновления dyndns. Вы могли бы, например, зарегистрируйте ourCompanyName.dyndns.org, и он всегда будет перенаправлен на ваш локальный компьютер.

...