none
Detection DHCP sur poste client ? RRS feed

  • Question

  • Bonjour a tous

    Je rechercher comment faire pour savoir si un PC client (type Windows XP, Windows 7) a attribuer une adresse IP sur un reseau non pro
    Par exemple deux machines en connexion par cable croiser PC A et PC B, comment faire a partir du PC A connaitre l'adresse IP du PC B ?

    En vous remerciant d'avance


    lundi 26 juillet 2010 07:42
    Auteur de réponse

Réponses

Toutes les réponses

  • Bonjour,

    Dim carteRéseau As NetworkInterface
    
    carteRéseau = NetworkInterface.GetAllNetworkInterfaces()(<Indice de la carte réseau>)
    If carteRéseau.GetIPProperties().DhcpServerAddresses.Count > 0 Then
       Console.WriteLine("L'adresse IP de la machine a été donnée par un serveur DHCP")
    Else
       Console.WriteLine("L'adresse IP a été saisie à la mimine")
    End If
    

    Cordialement


    Gilles TOURREAU - MVP C# - MCTS ADO .NET 3.5 - MCPD Windows Developper 3.5 - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    lundi 26 juillet 2010 09:48
    Modérateur
  • Bonjour Gilles

     

    ça c'est pour le poste local a local, ce que je souhaite savoir c'est d'un poste local a distance
    Je vais essayé d'expliquer mieux ce que je recherche a faire

    Donc j'ai deux machine A et B, ses deux machines sont relier avec un câble croisé, elles sont supposés d'avoir une adresse IP chacune
    Comment faire a partir de la machine A de recuperer l'adresse IP de la machine B ?

    Je suppose que ses deux machines font le rôle de DHCP car elles sont en câble croisé, donc une machine ou l'autre est bien obligé de lui donner une IP non ?

    Je part sur le principe que si la machines A attribue une adresse IP a B il doit y avoir un moyen de la récupérer non ? (sans pour autant ouvrir un CMD et IPconfig depuis la machine B)

    Si c'est pas tres clair je ferais un petit dessin :)

     

    A bientot


    Cordialement, Troxsa
    lundi 26 juillet 2010 11:37
    Auteur de réponse
  • Voila une image qui représente la chose

     

    J'espere qu'avec l'image cela devrait etre plus facile a comprendre
    A partir de mon IHM (machine A) j'aimerais savoir quelle est l'adresse IP qui est attribuée pour la machine B !

    Si la machine A fait le role d'un serveur DHCP pour la machine B il doit y avoir un moyen de récupérer son adresse IP ?

     


    Cordialement, Troxsa
    lundi 26 juillet 2010 12:25
    Auteur de réponse
  • Bonjour,

     

    Le plus simple c'est de connecter tes deux pc par un cable croisé.

    Ensuite regarde sous DOS l'adresse IP du pc A et l'adresse IP du pc B

    ensuite tu peux en conclure qui attribue l'adresse IP et écris ton code en fonction.

     


    fred
    lundi 26 juillet 2010 12:38
  • Merci Fred

     

    Je viens de parler a une équipe réseau et d'apres eux il y aurais aucun moyen de connaitre cette adresse IP attribué parce que c'est la machine local qui détecte qu'il y a un réseau (connexion) et si elle ne trouve pas de serveur DHCP elle s'attribue une adresse par défaut en 169........

    ce qui met fin de toute espérance de faire un programme avec l'idée que j'avais ! il va faloir de trouvé autre chose :P

    Merci.


    Cordialement, Troxsa
    lundi 26 juillet 2010 12:44
    Auteur de réponse
  • Bonjour,

    Je viens de parler a une équipe réseau et d'apres eux il y aurais aucun moyen de connaitre cette adresse IP attribué parce que c'est la machine local qui détecte qu'il y a un réseau (connexion) et si elle ne trouve pas de serveur DHCP elle s'attribue une adresse par défaut en 169........
    Tout à fait...

    ce qui met fin de toute espérance de faire un programme avec l'idée que j'avais ! il va faloir de trouvé autre chose :P
    Prenons le problème à l'envers : Depuis le poste A vous cherchez l'adresse IP du poste B ?

    Cordialement


    Gilles TOURREAU - MVP C# - MCTS ADO .NET 3.5 - MCPD Windows Developper 3.5 - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    lundi 26 juillet 2010 20:45
    Modérateur
  • Oui c'est bien ça Gilles
    Cordialement, Troxsa
    mardi 27 juillet 2010 06:46
    Auteur de réponse
  • Bonjour,

    Un peu plus d'info sur le contexte pourrait aider. Le poste B est-il visible par exemple dans le "voisinage réseau" ? Dans ce cas, il doit être possible d'accéder à cette liste par programmation (si par exemple le but est que l'application propose le(s) PCs accessibles depuis un PC donné plutôt que de laisser l'utilisateur entrer le nom de la machine à atteindre).

     


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    • Proposé comme réponse Alex Petrescu vendredi 30 juillet 2010 08:56
    mardi 27 juillet 2010 15:17
    Modérateur
  • Bonjour Patrice

     

    Super utile l'information, j'y avais pas pensé :)

    Après quelque test, effectivement dans voir tout les réseaux j'arrive a voir la machine en question
    j'ai ouvert une commande DOS et fait un "net view" et en regardant bien dans cette commande il y a l'option "/domain:nameDomain" j'arrive donc a récupérer le nom de la machine et son adresse IP (Avec un ping du host récupérer par le net view)

    Il me reste donc a trouvé le comment faire en programmation, si vous avez des piste ou des solutions ...

     

    Merci

     


    Cordialement, Troxsa
    mercredi 28 juillet 2010 07:19
    Auteur de réponse
  • Apparemment il faudrait chercher du côté de WNetOpenEnum/WNetEnumResource. Voir http://edn.embarcadero.com/article/26876 et chercher de ce côté pour un article adapté à .NET...

     

     


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    • Proposé comme réponse Alex Petrescu vendredi 30 juillet 2010 08:56
    mercredi 28 juillet 2010 10:53
    Modérateur
  • Je vais faire des recherches, je vous tien au courant des que je trouves quelque chose

     

    Merci :)


    Cordialement, Troxsa
    mercredi 28 juillet 2010 20:21
    Auteur de réponse
  • Bonsoir,

    Voici un code déjà fait : http://www.dreamincode.net/code/snippet1978.htm

    Cordialement


    Gilles TOURREAU - MVP C# - MCTS ADO .NET 3.5 - MCPD Windows Developper 3.5 - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    mercredi 28 juillet 2010 21:31
    Modérateur
  • Merci Gilles,

    Je regarderait ça avec attention dans 3 semaines car les vacances m'appelle :)

     

    A bientot


    Cordialement, Troxsa
    vendredi 30 juillet 2010 11:27
    Auteur de réponse
  • Je rajoute une petite source

    Imports System.DirectoryServices
    

    Dim oNetView As New DirectoryEntry
        oNetView.Path = "WinNT://WORKGROUP"
    
        For Each a As DirectoryEntry In oNetView.Children
          Console.WriteLine(a.Name)
        Next
    

    reste plus qu'a recuperer l'adresse IP par un ping ...

     

     


    Cordialement, Troxsa
    mercredi 13 octobre 2010 09:49
    Auteur de réponse
  • Bonjour,

        Using pong As Ping = New Ping()
          Dim résultat As PingReply
    
          résultat = pong.Send("www.google.fr")
    
          Console.WriteLine(résultat.Address.ToString())
        End Using
    

    Cordialement


    Gilles TOURREAU - MVP C# - MCPD Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5 - MCTS ADO .NET 3.5 / SQL Server 2008 Developper - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    dimanche 14 novembre 2010 10:21
    Modérateur