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

C# Discussion :

récupérer adresse mac


Sujet :

C#

  1. #1
    Membre averti Avatar de solo190
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2007
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 412
    Points : 321
    Points
    321
    Par défaut récupérer adresse mac
    Salut a tous,
    Je suis entrain de vouloir recuperer mon adresse Mac,

    J'ai le message d'erreur suivant:
    Le type ou le nom d'espace de noms 'ManagementClass' n'existe pas dans l'espace de noms 'System.Management' (une référence d'assembly est-elle manquante ?) C:\Documents and Settings\Arnaud\Local Settings\Application Data\Temporary Projects\adresse max\Form1.cs
    Mon code :
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Net.NetworkInformation;
    using System.Management;
    using System.Management.Instrumentation;
    using System.IO;
    using System.Net;
     
     
     
    namespace adresse_max
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
     
            private void button1_Click(object sender, EventArgs e)
            {
     
                System.Management.ManagementClass myManagementClass = new System.Management.ManagementClass("Win32_NetworkAdapterConfiguration");
                System.Management.ManagementObjectCollection moc = myManagementClass.GetInstances();
                foreach (System.Management.ManagementObject mo in moc)
                {
                    MessageBox.Show(mo["MacAddress"].ToString());
                }
     
     
            }
        }
    }
    Merci de m'aider

  2. #2
    Max
    Max est déconnecté
    Expert éminent sénior

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Points : 14 933
    Points
    14 933
    Par défaut
    Salut.

    Déjà, c'est l'adresse MAC que tu cherches, et pas l'adresse MAX .

    Es-tu bien certain d'avoir ajouté une référence à System.Management dans ton projet ?

    À part ça, pense aussi à tester si il y a une valeur avant d'appeler ToString() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    foreach (System.Management.ManagementObject mo in moc) {
        if (mo["MacAddress"] != null) {
            MessageBox.Show(mo["MacAddress"].ToString());
        }
    }

  3. #3
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2011
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 456
    Points : 386
    Points
    386
    Par défaut
    je suis intersee de cette discussion
    le nouveau code ne marche pas
    et j'ai visité
    http://msdn.microsoft.com/en-us/libr...VS.100%29.aspx
    j'ai pas compris qu'est ce qu'il faut faire dans cette parite
    ( "[SerializableAttribute]")

  4. #4
    Max
    Max est déconnecté
    Expert éminent sénior

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Points : 14 933
    Points
    14 933
    Par défaut
    Citation Envoyé par genius4evers Voir le message
    je suis intersee de cette discussion
    le nouveau code ne marche pas
    et j'ai visité
    http://msdn.microsoft.com/en-us/libr...VS.100%29.aspx
    j'ai pas compris qu'est ce qu'il faut faire dans cette parite
    ( "[SerializableAttribute]")
    SerializableAttribute indique juste que la classe ManagementClass est sérialisable.

    Avec l'ajout de la référence à System.Management, le code suivant fonctionne parfaitement en local :
    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
    26
    27
    28
    29
    30
    using System;
    using System.Management;
     
    namespace MacAddress {
     
        public class Program {
     
            public static void Main(string[] args) {
                Program.listMACAddresses();
                Console.ReadLine();
            }
     
            private static void listMACAddresses() {
                try {
                    ManagementObjectSearcher searchResults = new ManagementObjectSearcher(@"root\CIMV2", "SELECT * FROM Win32_NetworkAdapterConfiguration");
                    foreach (ManagementObject classInstance in searchResults.Get()) {
                        Console.WriteLine("-----------------------------------");
                        Console.WriteLine("Win32_NetworkAdapterConfiguration instance");
                        Console.WriteLine("-----------------------------------");
                        Console.WriteLine("Caption: {0}", classInstance["Caption"] ?? "N/A");
                        Console.WriteLine("MAC Address: {0}", classInstance["MACAddress"] ?? "N/A");
                        Console.WriteLine();
                    }
                }
                catch (ManagementException e) {
                    Console.WriteLine(e.Message);
                }
            }
        }
    }

  5. #5
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    tu peut récupérer les IPs et les MAcs enutilisant les WMI

    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
    26
    27
     ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
     
                ManagementObjectCollection mcCol = mc.GetInstances();
     
                foreach (ManagementObject mcObj in mcCol)
                {
     
                    if ((bool)mcObj["IPEnabled"])
                    {
                        MessageBox.Show(mcObj["Caption"].ToString());
                        if (mcObj["IPAddress"] != null)
                        {
                            string[] ips = (string[])mcObj["IPAddress"];
                            foreach (string ip in ips)
                                MessageBox.Show(ip);
                        }
                        else
                            MessageBox.Show("");
     
                        if (mcObj["MacAddress"] != null)
                            MessageBox.Show(mcObj["MacAddress"].ToString());
                        else
                            MessageBox.Show("");
     
                        MessageBox.Show(mcObj["InterfaceIndex"].ToString());
                    }
                }
    il faut aussi ajouter le référence . via une click droit sur References

  6. #6
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2011
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 456
    Points : 386
    Points
    386
    Par défaut
    j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    using System.Management;
    et l'erreur est
    The type or namespace name 'ManagementClass' could not be found (are you missing a using directive or an assembly reference?)
    qu'est ce qu'il faut faire ?

  7. #7
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    bah tu doit ajouter le référence à ton projet

    click droit sur References dans ton Solution ,click Ajouter un reference..
    vous choisirez System.Management

  8. #8
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2011
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 456
    Points : 386
    Points
    386
    Par défaut
    Ok Monsieur azstar ca marche tres bienne , merci pour toi,
    mais pourquoi il faut ajouter le references System.Management , sachant qu'on peut ecrire using System.Management , moi j'ai fait add references pour un dll dont je peux pas faire appelle du using seule, !
    exemple si on veut utiliser le word, on fait add reference du office, et apres
    using Word=Microsoft.Office.Interop.Word; tu as compris mon question ?

  9. #9
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    seul les références standards sont ajoutes par défaut à notre projet.
    je n'est pas un réponse au question pourquoi !!
    mais c simple appel belll gate il est en vacance à Miami ce moment !!!; j’espère que il y'a qlq 'un qui sais ça ,moi aussi je veux savoir.

    n'oublie pas

  10. #10
    Membre averti Avatar de solo190
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2007
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 412
    Points : 321
    Points
    321
    Par défaut Adresse Mac
    salut a tous,
    je suis très fier en ce moment, car j'ai pu trouvé la solution a mon problème.
    actuellement j'ai peu recuperer mon adresse Mac et ip.
    Bonne continuation à ce site.

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

Discussions similaires

  1. Récupérer adresses MAC en Java
    Par hichem tunis dans le forum Langage
    Réponses: 1
    Dernier message: 10/03/2011, 21h01
  2. Récupérer adresse MAC
    Par therealmancool dans le forum Linux
    Réponses: 1
    Dernier message: 20/11/2009, 15h17
  3. [CF][C#] Comment récupérer adresse Mac d'un PPC ?
    Par JBernn dans le forum Windows Mobile
    Réponses: 18
    Dernier message: 12/01/2006, 18h14
  4. [MFC]récupérer l'adresse MAC
    Par julien20vt dans le forum MFC
    Réponses: 6
    Dernier message: 17/02/2004, 11h22
  5. Comment récupérer une adresse MAC ?
    Par psau dans le forum Développement
    Réponses: 7
    Dernier message: 19/07/2002, 17h26

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