Plattformübergreifende C#-MAC-Adresserfassung: Ein robuster Ansatz
Das Abrufen der MAC-Adresse einer Maschine ist für viele netzwerkbezogene Anwendungen unerlässlich. Das Erreichen konsistenter Ergebnisse über verschiedene Betriebssysteme und Spracheinstellungen hinweg stellt jedoch eine erhebliche Herausforderung dar. Dieser Artikel bietet eine zuverlässige und effiziente Lösung in C#.
Eine überlegene Lösung
Dieser verfeinerte Ansatz bietet mehr Klarheit und Zuverlässigkeit:
<code class="language-csharp">string macAddress = ( from nic in NetworkInterface.GetAllNetworkInterfaces() where nic.OperationalStatus == OperationalStatus.Up select nic.GetPhysicalAddress().ToString() ).FirstOrDefault();</code>
Dieser Code verwendet NetworkInterface.GetAllNetworkInterfaces()
, um alle Netzwerkschnittstellen abzurufen. Es filtert nach aktiven Schnittstellen, ausgenommen Loopback-Adapter. Anschließend wird die MAC-Adresse der ersten geeigneten Schnittstelle extrahiert und macAddress
.
Eine alternative Methode
Für mehr Flexibilität sollten Sie diese Alternative in Betracht ziehen:
<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>
Diese Methode verwendet die gleiche Filterung wie die vorherige Lösung, bietet jedoch anpassbarere Auswahlkriterien. Beispielsweise könnten Sie Schnittstellen basierend auf der Verbindungsgeschwindigkeit oder bestimmten Verbindungstypen (z. B. Ethernet) priorisieren.
Bereitstellungshinweise
Diese Lösungen sind unabhängig von der Systemsprache mit Windows XP, Vista, Windows 7 und späteren Versionen kompatibel. Für den ordnungsgemäßen Betrieb sind jedoch möglicherweise Administratorrechte erforderlich. Für eine optimale Funktionalität wird empfohlen, Ihre Anwendung mit Administratorrechten auszuführen.
Das obige ist der detaillierte Inhalt vonWie kann ich die MAC-Adresse einer Maschine in C# über verschiedene Betriebssysteme hinweg zuverlässig ermitteln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!