Eine plattformübergreifende Lösung zum Abrufen von MAC-Adressen in C#
Die konsistente Ermittlung der MAC-Adresse einer Maschine über verschiedene Betriebssysteme hinweg ist aufgrund unterschiedlicher Befehlszeilenausgaben und Spracheinstellungen schwierig. Dieser Artikel stellt eine zuverlässige, plattformunabhängige Methode vor.
Die zuverlässige Methode: Verwendung von NetworkInterface
Der zuverlässigste Ansatz verwendet die Klasse NetworkInterface
. Dies funktioniert konsistent unter Windows XP, Vista, 7 und höher, sowohl in 32-Bit- als auch in 64-Bit-Umgebungen, unabhängig von der Systemsprache.
Codebeispiele
Hier gibt es zwei Möglichkeiten, dies umzusetzen:
Methode 1:
<code class="language-csharp">var macAddr = ( from nic in NetworkInterface.GetAllNetworkInterfaces() where nic.OperationalStatus == OperationalStatus.Up select nic.GetPhysicalAddress().ToString() ).FirstOrDefault();</code>
Methode 2 (prägnanter):
<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>
Beide Methoden rufen die MAC-Adresse effektiv ab und stellen sie so für die Verwendung in verschiedenen Anwendungen bereit. Die zweite Methode fügt eine Prüfung hinzu, um Loopback-Schnittstellen auszuschließen.
Das obige ist der detaillierte Inhalt vonWie kann ich die MAC-Adresse einer Maschine in C# auf verschiedenen Plattformen zuverlässig abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!