Feedback

C# - MAC Adresse eines Netzwerkcomputers mithilfe der IP Adresse

Veröffentlicht von am 24.07.2008
(1 Bewertungen)
Die MAC-Adresse (Media Access Control, ist die Hardware-Adresse jedes einzelnen Netzwerkadapters, die zur eindeutigen Identifizierung des Geräts im Netzwerk dient.
(Quelle Wikipedia )

Dieser Snippet nützt von der "iphlpapi.dll" die Funktion SendARP um die MAC Adresse als byte-array zu erhalten.
GFU-Schulungen  [Anzeige]

C# Komplett

Sie kennen sich in objektorientierter Programmierung aus. Sie schreiben C++ oder Java? Und nun stehen Sie vor der Aufgabe, in C# Anwendungen zu erstellen. Das C# Komplett-Seminar verschafft Ihnen umfassende Programmierkenntnisse in dieser Sprache. Nach der Schulung entwickeln Sie selbständig Anwendungen mit C#. Sie kennen die Datentypen und Klassenbibliotheken der objektorientierten Programmiersprache C#. Der Komplettkurs setzt bei den Grundlagen von C# ein. Sie arbeiten mit Variablen und konvertieren Typen. Multithreading, Delegates, Generics sind nach dem Seminar für Sie kein Geheimnis mehr.

C# Grundlagen

Die Schulung vermittelt Ihnen die Grundlagen von C# in der Arbeit mit Datentypen sowie bei Klassenbibliotheken. Sie lernen, mit Variablen umzugehen und deren verschiedene Formen zu konvertieren. 

[DllImport("iphlpapi.dll", ExactSpelling = true)]
        public static extern int SendARP(int DestIP, int SrcIP, [Out] byte[] pMacAddr, ref int PhyAddrLen);

        /// <summary>
        /// Ermittelt die MAC Adresse eines im Netzwerk befindlichen Computers
        /// </summary>
        /// <param name="ip">Die IP des Netzwerkcomputers</param>
        /// <returns>Die MAC Adresse im string format</returns>
        private string GetMACAdress(IPAddress ip)
        {
            try
            {
                byte[] ab = new byte[6];
                int len = ab.Length;

                int r = SendARP((int)ip.Address, 0, ab, ref len);
                string mac = BitConverter.ToString(ab, 0, 6);
                
                return mac;
            }
            catch (Exception)
            {
                return "MAC not available";
            }
        }

3 Kommentare zum Snippet

Sperneder Patrick schrieb am 24.07.2008:
Erst als ich es veröffentlicht habe, habe ich gesehen das der völlig gleiche Snippet schon hier veröffentlicht wurde.
Sorry !
Jan Welker schrieb am 24.07.2008:
Macht nichts :-)
stol schrieb am 20.08.2008:
Als Anmerkung:
Dies funktioniert nur im eigenen Netz. Das ARP-Protokoll ist nicht routingsfähig!
 

Logge dich ein, um hier zu kommentieren!