Robustes Abrufen der MAC-Adresse eines Computers in C#
Das zuverlässige Abrufen der MAC-Adresse einer Maschine in C# kann aufgrund von Betriebssystem- und Sprachinkonsistenzen schwierig sein. Während ipconfig /all
wie eine Lösung erscheinen mag, variiert das Ausgabeformat von System zu System, was es unzuverlässig macht.
Ein zuverlässiger Ansatz
Eine robustere Methode nutzt die Klasse NetworkInterface
in C#. Dies bietet eine konsistente Möglichkeit, MAC-Adressen unabhängig vom Betriebssystem oder der Sprache abzurufen. So geht's:
<code class="language-csharp">var macAddr = ( from nic in NetworkInterface.GetAllNetworkInterfaces() where nic.OperationalStatus == OperationalStatus.Up select nic.GetPhysicalAddress().ToString() ).FirstOrDefault();</code>
Dieser Code ruft alle Netzwerkschnittstellen ab, filtert nach aktiven und wählt deren physische Adressen (MAC-Adressen) aus. FirstOrDefault()
gibt die erste gefundene MAC-Adresse zurück.
Alternative Implementierung (expliziter)
Ein etwas detaillierterer Ansatz liefert das gleiche Ergebnis:
<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>
Dies schließt inaktive und Loopback-Schnittstellen ausdrücklich aus, um sicherzustellen, dass nur gültige MAC-Adressen berücksichtigt werden.
Das obige ist der detaillierte Inhalt vonWie kann ich die MAC-Adresse einer Maschine in C# zuverlässig abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!