Heim >Backend-Entwicklung >C++ >Wie kann ich die MAC-Adresse einer Maschine in C# über verschiedene Betriebssysteme hinweg zuverlässig ermitteln?

Wie kann ich die MAC-Adresse einer Maschine in C# über verschiedene Betriebssysteme hinweg zuverlässig ermitteln?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-17 01:16:09811Durchsuche

How Can I Reliably Get a Machine's MAC Address in C# Across Different Operating Systems?

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.

zugewiesen

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn