none
Découverte automatique des PC sur le réseau local RRS feed

  • Discussion générale

  • Nous développons une application pour le Windows Store devant tourner sur tablette surface (ARM).

    Nous avons besoin d'obtenir la liste des PC (avec leur nom voire leur adresse IP) sur le sous réseau. Pour chacun, nous allons ensuite utiliser les Webs Services qu'il expose.

    Sur d'autres OS, nous utiliserions "Zero Configuration Networking". Connaissez vous un équivalent ?

    Nous avons parcouru l'API pour le Windows Store et nous n'avons rien trouvé nous permettant de découvrir automatiquement les PC sur le réseau local. Existe t'il un moyen ?

    Merci d'avance,

    IntuiLab31

    • Type modifié Aurel Bera jeudi 24 janvier 2013 14:34
    jeudi 17 janvier 2013 11:25

Toutes les réponses

  • Bonjour,

    Je ne connais pas d’équivalent à la solution que vous proposez, en revanche vous pouvez essayer une autre approche.

    Vous pouvez proposer a l'utilisateur de l'application mobile de fournir directement l'adresse de la machine a contacter. Vous pourrez ainsi vérifier si vous pouvez vous connecter au service. C'est un moyen de contourner ce problème mais aussi d'offrir la possibilité de paramétrer manuellement l'application (ce que certains utilisateurs préféreront).

    Pour la découverte du réseau, il est possible d'utiliser net.socket pour faire le mappage d'un réseau. Voici un projet qui pourrez probablement vous intéresser : http://www.codeproject.com/Articles/17031/A-Network-Sniffer-in-C

    Le projet est clairement commenté mais si vous avez des questions n'hésitez pas !

    jeudi 17 janvier 2013 12:40
  • Bonjour,

    Est-ce que vous avez testé les solutions proposées ? Merci de partager avec nous les résultats, afin que d'autres personnes avec le même problème puissent profiter de cette solution.

    Cordialement,


    Aurel BERA, Microsoft
    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    lundi 21 janvier 2013 08:18
  • Bonjour,

    William: Nous proposons déjà dans notre application la possibilité à l'utilisateur de saisir directement le nom ou l'adresse IP de la machine à contacter. Mais cette solution reste un contournement (mode dégradé).

    J'ai testé votre code qui fonctionne bien sur ma machine de développement Windows 8 avec .Net installé mais la cible reste la tablette surface ARM où nous n'avons pas accès à toute l'API .Net mais seulement une petite partie (.Net for Windows Store apps). J'ai essayé de porter votre code dans une solution pour le Windows Store mais il y a trop de différences (de choses manquantes dans l'API ".Net for Windows Store"):

    - System.Net.IPAddress n'existe plus

    - System.Net.Sockets.Socket n'existe plus. Remplacé par DatagramSocket ou StreamSocket mais toutes les méthodes sont différentes (exemple: constructeur, SetSocketOption, etc.). Les paramètres sont également différents (exemple: pas d'équivalent pour IOCControl, etc.)

    - etc.

    Merci tout de même pour votre réponse.

    Aurel: Nous sommes toujours bloqué. Avez vous une piste de solution pour obtenir la liste des PC sur le sous réseau en utilisant uniquement le .Net for Windows Store apps ?

    Merci d'avance,

    IntuiLab31

    lundi 21 janvier 2013 15:15
  • Merci pour votre retour,

    Dès que j'ai un peu de temps je vais regarder comment transposer le code pour du W8 ARM. Je n'ai malheureusement pas d'autre solution et je ne pense pas que d'autre existe pour le moment mais au cas ou avez-vous parcourir les projets codePlex ?

    Notez que le projet que je vous ai transmis n'est pas de moi ;)

    Je vous fais un retour d'ici fin de semaine au plustard à moins que quelqu'un d'autre ait une idée.

    lundi 21 janvier 2013 16:49
  • Bonjour

    J’ai essayé de trouver quelque chose pour Windows Store, mais ça n’existe pas.

    Ici il y a quelques exemples sur le même problème, mais pas pour Windows Store.

    http://social.msdn.microsoft.com/Forums/en/csharplanguage/thread/6aaf0d22-84cf-49ce-9d92-b45a207a571c

    Essayez une transformation de ces exemples.

    Aussi, ce que je vois comme solution un peu plus simple c’est de faire une interrogation Active Directory.

    Cordialement

    Aurel BERA, Microsoft
    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    mardi 22 janvier 2013 13:49
  • Bonjour,

    J'étais déjà tombé sur les mêmes pistes de solutions mais aucune ne peut être adapté pour le Windows Store:
    -  new DirectoryEntry("WinNT:") --> il faudrait pouvoir utiliser System.DirectoryServices.dll mais pas disponible dans le .Net for Windows Store. Pas d'équivalent dans le namespace "Windows.Storage..."
    - [DllImport("Netapi32", --> impossible dans notre cas

    Certaines réponses permettent uniquement d'obtenir les noms/adresses IP de sa machine locale.

    Au sujet d'Active Directory, pouvez vous préciser ce que vous appelez par interrogation Active Directory ?

    J'ai trouvé le namespace "System.DirectoryServices.ActiveDirectory". Faisiez vous référence à ça ? Par contre, il n'est pas disponible dans le .Net for Windows Store.

    Cordialement,

    IntuiLab31

    vendredi 25 janvier 2013 10:55
  • Bonjour,

    Je suis désolé mais je sèche complétement, je n'ai rien de concret cote socket, il me manque toujours un petit quelque chose.

    Je verrais dans le week-end si il y a possibilité de creuser et d'utiliser une dll perso directement ou une api quelconque de l'OS mais je ne suis pas bien optimiste.

    Bon courage,

    vendredi 25 janvier 2013 13:25