Une solution multiplateforme pour récupérer des adresses MAC en C#
Obtenir l'adresse MAC d'une machine de manière cohérente sur différents systèmes d'exploitation est délicat en raison des variations dans les sorties de ligne de commande et les paramètres de langue. Cet article présente une méthode fiable et indépendante de la plateforme.
La méthode fiable : utiliser l'interface réseau
L'approche la plus fiable utilise la classe NetworkInterface
. Cela fonctionne de manière cohérente sous Windows XP, Vista, 7 et versions ultérieures, dans les environnements 32 bits et 64 bits, quelle que soit la langue du système.
Exemples de code
Voici deux façons de mettre en œuvre cela :
Méthode 1 :
<code class="language-csharp">var macAddr = ( from nic in NetworkInterface.GetAllNetworkInterfaces() where nic.OperationalStatus == OperationalStatus.Up select nic.GetPhysicalAddress().ToString() ).FirstOrDefault();</code>
Méthode 2 (plus concise) :
<code class="language-csharp">string firstMacAddress = NetworkInterface .GetAllNetworkInterfaces() .Where(nic => nic.OperationalStatus == OperationalStatus.Up && nic.NetworkInterfaceType != NetworkInterfaceType.Loopback) .Select(nic => nic.GetPhysicalAddress().ToString()) .FirstOrDefault();</code>
Les deux méthodes récupèrent efficacement l'adresse MAC, la rendant facilement disponible pour une utilisation dans diverses applications. La deuxième méthode ajoute une vérification pour exclure les interfaces de bouclage.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!