IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[C#] Probleme WMI


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2002
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 54
    Points : 55
    Points
    55
    Par défaut [C#] Probleme WMI
    j'essaie de recuperer mon IP avec wmi et ca ne fonctionne pas
    j'arrive a recuperer la MAc address et d'autre info mais rien a faire pour l'ip

    y a t'il une subtilité en ce qui concerne l'ip ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    public string GetMACAddress()
    {
    ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
     
    ManagementObjectCollection moc = mc.GetInstances();
     
    MACAddress=String.Empty;
     
    foreach(ManagementObject mo in moc)
    {
     
    Console.WriteLine(mo["IPAddress"]);
     
    if(MACAddress==String.Empty)  			
    {
    if((bool)mo["IPEnabled"] == true) MACAddress= mo["MacAddress"].ToString() ;
     
    }
    mo.Dispose();
    }
     
    MACAddress=MACAddress.Replace(":","");
    return MACAddress;
    }

  2. #2
    DrQ
    DrQ est déconnecté
    Membre expérimenté
    Avatar de DrQ
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 388
    Points : 1 515
    Points
    1 515
    Par défaut
    Pourquoi n'utilises tu pas le WQL ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.Management.ObjectQuery oQuery = new System.Management.ObjectQuery("select IPAddress from Win32_NetworkAdapterConfiguration");
    Cela te retournera les IP de ton adapteur réseau.

    Pour plus d'info sur le site de microsoft : ici
    Pour une explication avec WQL sur developpez.com : ici

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2002
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 54
    Points : 55
    Points
    55
    Par défaut
    je viens d'essayer comme tu a dit avec wql ca ne fonctionne pas non plus

    il me retourne systeme.string

  4. #4
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 253
    Points
    28 253
    Par défaut
    voici un code que j'utilisais. si cela peut t'aider
    Il est à noter que cela ne te renvoi pas une chaine de caractere comme d'autres champs que tu aurais pu avoir en WQL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    myObjectQuery = new System.Management.ObjectQuery("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True" );
     
    String []tot=(string[])myManagementObject["IPAddress"]; 
    //"IP: "+ tot[0].ToString());
     
    tot=(string[])myManagementObject["IPSubnet"];
    //"Sous réseau: "+ tot[0].ToString());
     
    String [] tot2=(string[])myManagementObject["DefaultIPGateway"];
    //"Passerelle: "+ tot2[0].ToString());

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2002
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 54
    Points : 55
    Points
    55
    Par défaut
    voila j'ai trouver j'avais un stupide probleme de conversion avec string[]

    public void ListIP()
    {
    ManagementClass objMC = new ManagementClass(
    "Win32_NetworkAdapterConfiguration");
    ManagementObjectCollection objMOC = objMC.GetInstances();

    foreach(ManagementObject objMO in objMOC)
    {
    if(!(bool)objMO["ipEnabled"])
    continue;



    Console.WriteLine(objMO["Caption"] + "," +
    objMO["ServiceName"] + "," + objMO["MACAddress"]) ;
    string[] ipaddresses = (string[]) objMO["IPAddress"];
    string[] subnets = (string[]) objMO["IPSubnet"];
    string[] gateways = (string[]) objMO["DefaultIPGateway"];


    Console.WriteLine("Printing Default Gateway Info:");
    Console.WriteLine(objMO["DefaultIPGateway"].ToString());

    Console.WriteLine("Printing IPGateway Info:");
    foreach(string sGate in gateways)
    Console.WriteLine (sGate);


    Console.WriteLine("Printing Ipaddress Info:");

    foreach(string sIP in ipaddresses)
    Console.WriteLine(sIP);

    Console.WriteLine("Printing SubNet Info:");

    foreach(string sNet in subnets)
    Console.WriteLine(sNet);
    }

    exemple de code project

  6. #6
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 253
    Points
    28 253
    Par défaut
    bouton résolu? balise code?

    ps: tu as vu que dans le post precedent, je te faisais remarquer le typage specifique?

  7. #7
    Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Je ressors un vieux sujet de la poussière, puisqu'il traite un peu de ce que je souhaite faire.

    Je suis en C#, sous le Framework 2.0, et je cherche à récuperer l'adresse DNS d'une machine interrogée via WMI. Je me trouve dans un réseau Win XP/Server 2003, je ne pense pas avoir à faire avec d'autres systemes.

    j'arrive à recuperer l'IP grace aux bon conseils juste au dessus, mais pour ce qui est de l'IP DNS attachée à cette interface réseau, je sèche.

    auriez-vous, s'il vous plait, un petit truc pour m'aider?

  8. #8
    Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bon, j'ai trouvé un élément de réponse. il faut aller chercher dans la partie DNSServerSearchOrder de la classe Win32_NetworkAdapterConfiguration

    Mais je ne comprends pas pourquoi, tout à coup, plus rien ne fonctionne dès qu'il s'agit de faire du distant...
    Erreur de Service RPC...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme WMI avec CIM_DataFile
    Par kciope dans le forum VB.NET
    Réponses: 0
    Dernier message: 07/02/2012, 08h15
  2. WMI probleme de connexion a distance
    Par pepefourras dans le forum MFC
    Réponses: 9
    Dernier message: 15/12/2011, 02h44
  3. probleme d'insertion dans un tableau (WMI)
    Par sono77 dans le forum VBScript
    Réponses: 5
    Dernier message: 22/04/2008, 18h09
  4. [vb.net][2.0][wmi] Probleme d'acces
    Par graphicsxp dans le forum Windows Forms
    Réponses: 1
    Dernier message: 03/11/2006, 13h58
  5. Probleme avec delphi et WMI.
    Par LeBigornot dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 15/01/2006, 11h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo