![]() |
MAC-Adresse eine Gegenseite auslesen
Hallo!
Ich suche eine elegante Möglichkeit, mit einem Delphi-Programm die MAC-Adresse eines Gerätes zu ermitteln, welches per LAN-Crossover-Kabel (also ohne Switch, Router o.ä. dazwischen) mit der Netzwerkkarte des Rechners verbunden ist, auf dem das Delphi-Programm läuft. Dabei geht es um Identifikation im Prüffeld, also der Reihe nach eine größere Stückzahl an Geräten anschließen, MAC auslesen und Etikett mit kodierter MAC-Adresse ausdrucken. Es handelt sich dabei um ganz unterschiedliche Embedded-Geräte mit ganz unterschiedlichen Betriebssystemen. Der Prüfrechner befindet sich auch nicht auf Umwegen in einem größeren Netzwerk, sodass man sich auf Protokollebene "austoben" könnte ohne in einem Netzwerk "Konfusionismus" auszulösen ;-) Allerdings bin ich in den Low-Level-Netzwerkprotokollen nicht so fit und wollte mir mal ein paar Ideen holen. Zuerst dachte ich an einen DHCP-Server, doch es ist nicht garantiert, dass die zu prüfenden Geräte immer als DHCP-Client konfiguriert sind. Daher denke ich mir müsste man den Prüfling mit einer Art Anfrage-Paket "anstupsen", welches immer beantwortet wird. Dann hätte man auch die MAC-Adresse der Gegenseite. Vielleicht gibt es ja auf UDP-Ebene etwas das man dafür nutzen könnte. Nur um vorab eines klar zu stellen: Es geht hierbei nicht um sinnvolle Kommunikation mit dem Prüfling sondern ausschließlich um die Ermittlung der MAC-Adresse zum Zwecke des Labellings. Grüße Cody |
AW: MAC-Adresse eine Gegenseite auslesen
Guten Morgen,
geht das ( ![]() Ansonsten könnte noch der arp (arp.exe) cache ausgelesen werden. Grüße Klaus |
AW: MAC-Adresse eine Gegenseite auslesen
Der Arp-Cache wird ja auch nur gefüllt wenn überhaupt per IP kommuniziert wurde, oder?
Es geht ja eher darum ob man auf Ethernet-Schickt irgendetwas in den Raum werfen kann ("Broadcast") und definitiv eine Antwort bekommt. |
AW: MAC-Adresse eine Gegenseite auslesen
Du bewegst dich unterhalb von IP daher fallen UDP und TCP aus.
Du brauchst auf jeden Fall ein Paket von der Gegenseite, ohne das sieht das nicht gut aus. Ich dachte als erstes an WinPcap und dein Programm fängt alles auf was kommt. Dann wertest du das MAC-Frame/Ethernet-Frame aus. |
AW: MAC-Adresse eine Gegenseite auslesen
Zitat:
![]() |
AW: MAC-Adresse eine Gegenseite auslesen
Irgendwie ist es vielleicht ganz gut dass man auf Schicht 2 ein Gerät nicht zum Antworten "zwingen" kann, oder? Sollte nicht eigentlich auf allen Bauteilen mit RJ45-Buchse immer die MAC-Adresse in der Nähe aufgedruckt sein?
|
AW: MAC-Adresse eine Gegenseite auslesen
Zitat:
Im Fall von ARP könnte ich ja theoretisch auch ~ 4,2 Milliarden Gratuitous-Pakete in das betreffende Netz "werfen". Eins für jede denkbare IPv4-Adresse. Quasi eine Art "Brute Force MAC Recognition". Allerdings weiß ich A) nicht wie lange das in der Praxis dauern würde und B) ob der Prüfling nicht evtl. irgendwann - aus Sicherheitsgründen - zu macht. Wie gesagt, mir fehlen auf dieser Low-Level-Ebene die Erfahrungen. |
AW: MAC-Adresse eine Gegenseite auslesen
.. wenn die Prüfgeräte im Netwerk stecken - dann haben sie doch einen IP-Stack.
Die Prüfgeräte im eigenen Subnetz können dann doch mit einem icmp-broadcast detektiert werden. Die Mac-Adressen sind dann im arp-cache zu finden (arp -a). Allerdings auch die Mac-Adressen anderer IP-Geräte im Subnetz. Grüße Klaus |
AW: MAC-Adresse eine Gegenseite auslesen
Zitat:
|
AW: MAC-Adresse eine Gegenseite auslesen
Wie wäre eine Server-Client Lösung? Der Server fragt nach der Mac Adresse und der Client antwortet mit der Mac Adresse. Der einzige Nachteil ist natürlich, dass zusätzlich ein Programm auf den Clients eingerichtet werden muss. Aber wenn man die Rechner aufsetzt kann man das ja auch noch schnell machen. Bei einer entsprechenden Anzahl von Rechnern fällt das dann nicht mehr ins Gewicht.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz