Zeroconf Name resolution

Je développe un dispositif de contrôle avec un serveur Web intégré. Le serveur Web fournit une interface de contrôle à tout navigateur Web qui en fait la demande (à partir des navigateurs Windows, des navigateurs Mac, des iPhone, etc.).

Le problème que je rencontre est un moyen général de savoir comment accéder à l’appareil. c’est-à-dire quelle adresse taper dans le navigateur web.

Les adresses IP fixes sont trop techniques pour mes utilisateurs et risquent de mal tourner car mon appareil peut être branché sur de nombreux réseaux locaux différents. L’utilisation de la découverte de service uPnp nécessite que le logiciel s’exécute sur le client pour certaines plates-formes et n’est pas aussi naturelle que de taper une adresse Web. Je veux implémenter la résolution de noms.

Mon implémentation actuelle utilise le protocole Netbios. Donc, depuis un navigateur Windows, je peux taper // controller / et cela fonctionne, mais cela ne fonctionne pas avec les Mac ou les smartphones. Je peux en outre essayer d’implémenter Apples mDnsresponder, ce qui devrait rendre les Mac et les iPhones jouables (même si je pense que je suis limité à //controller.local/). Des choses similaires existent peut-être pour Android, Symbian, etc. mais n’existe-t-il pas une solution plus universelle pour créer un nom de réseau que je pourrais essayer?

La plate-forme est actuellement basée sur un processeur TI Cortex M3 et lwIP.

Toute aide ou suggestion sur la façon de trouver une solution est très appréciée.

Sincères amitiés,

Bob

    Je pense que vous pouvez utiliser DynDns (www.dyndns.org), c’est gratuit pour ce que vous essayez de faire. Vous pouvez l’utiliser même si vous n’avez pas la possibilité d’obtenir une adresse IP fixe. Dans ce cas, vous utiliseriez l’utilitaire de mise à jour dyndns. Vous pouvez par exemple enregistrer notreNomSociété.dyndns.org et il sera toujours routé vers votre ordinateur local.

    Pour que les utilisateurs Windows puissent rechercher automatiquement votre appareil à l’aide de Zeroconf, ils doivent:

    1. Avoir un démon mDNS installé (comme le mDNSResponder que vous avez mentionné, qui est disponible gratuitement chez Apple)
    2. Installez un deuxième logiciel qui sait comment envoyer des requêtes au démon mDNS et affiche les services disponibles sur le réseau local (c’est-à-dire le serveur Web intégré de votre appareil).

    Bonjour pour Windows est fourni avec un plug-in Internet Explorer qui convient pour l’élément n ° 2 et qui peut ne pas être “trop ​​technique” pour vos utilisateurs. (Il leur suffirait de télécharger et d’installer Bonjour pour Windows et de cocher la case pour installer le plug-in Internet Explorer.) Les utilisateurs de Mac pourraient simplement utiliser le navigateur Safari, qui est déjà compatible avec Zeroconf.

    La dernière pièce du puzzle – et la partie la plus délicate – est que vous devez modifier votre propre logiciel pour enregistrer votre contrôleur auprès du “démon mDNS local”. Cependant, il n’y a probablement rien de tel, car votre «dispositif de contrôle» est un système intégré. Vous devez donc écrire votre propre démon mDNS sans système d’exploitation. Ce n’est pas si difficile à faire et vous pouvez utiliser le code mDNSPosix d’Apple comme sharepoint départ. Mais, en fonction de vos contraintes matérielles, cela pourrait ne pas être réalisable.

    Dans l’ensemble, Zeroconf peut être une stack de protocoles compliquée à utiliser. L’aspect «configuration zéro» s’applique uniquement à l’expérience de l’utilisateur. Pour un développeur , cela présente une courbe d’apprentissage assez abrupte. Si, en règle générale, vos utilisateurs n’exécutent qu’une seule instance de votre périphérique, il risque d’être excessif.