11
votes

Obtenez l'adresse MAC lorsque l'adaptateur réseau est désactivé?

Y a-t-il une façon de récupérer une adresse MAC lorsque l'adaptateur réseau est désactivé dans .NET?

Merci d'avance,


1 commentaires

Pourriez-vous publier le code que vous utilisez lorsque l'adaptateur est activé, puis mentionnez quel (s) appel (s) ne fonctionne pas lorsque l'adaptateur est désactivé?


4 Réponses :


1
votes

Vous pouvez utiliser WMI:

public static string GetMACAddress()
    {
        ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
        ManagementObjectCollection moc = mc.GetInstances();
        string MACAddress=String.Empty;
        foreach(ManagementObject mo in moc)
        {
            if(MACAddress==String.Empty)  // only return MAC Address from first card
            {
                MACAddress= mo["MacAddress"].ToString() ;
            }
            mo.Dispose();
        }

        return MACAddress;
    }


2 commentaires

Cela ne fonctionne pas non plus sur Windows XP. Je pense que cette réponse a été marquée comme la réponse trop rapide.


Pouvez-vous pls. Ajoutez une ligne que l'assemblage / espace de noms ont une classe «GestionClass» définie.



1
votes

Référez ce lien.

http://msdn.microsoft.com /en-us/library/system.net.networkinformation.physicalAddress.aspx

L'exemple ici affiche une adresse physique de toutes les interfaces indépendamment de leur étape opérationnelle. Htth.


1 commentaires

L'exemple ne reçoit pas Mac d'adaptateur Désactiver.



10
votes

Il n'est pas possible d'obtenir l'adresse MAC d'un adaptateur désactivé: Ceci est dû au fait que l'adresse MAC nécessite d'interroger le pilote et que le pilote d'un adaptateur désactivé n'est pas chargé ( source ).

Vous pouvez, cependant, obtenir l'adresse MAC d'un adaptateur qui n'est pas connecté actuellement.

La route WMI n'est pas bonne ici, car elle affiche l'adresse MAC comme null pour les adaptateurs qui ne sont pas connectés. La bonne nouvelle est que le NetworkInterface. GetallNetworkInsaces () route fonctionne simplement bien: xxx


1 commentaires

La réponse ci-dessus ne fonctionnera pas BCS. La liste renvoyée des adaptateurs réseau n'est dans aucun ordre séquentiel. Il lit tous les adaptateurs et peut être répertorié dans l'ordre aléatoire. Par conséquent, l'adaptateur connecté et déconnecté peut avoir dans n'importe quel index.



0
votes

Utilisation de MS PowerShell Command Get-NetAdapter One peut obtenir l'adresse MAC de l'adaptateur réseau désactivé.

Plus d'infos à Get-Nettadapter


0 commentaires