![]() |
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.
|
AW: MAC-Adresse eine Gegenseite auslesen
Zitat:
Zitat:
Da wird es dann denke ich schwierig eine Software zu installieren. |
AW: MAC-Adresse eine Gegenseite auslesen
Oh. OK. Überlesen. Dann geht das natürlich nicht.
|
AW: MAC-Adresse eine Gegenseite auslesen
Klassisches Verfahren :
![]() |
AW: MAC-Adresse eine Gegenseite auslesen
Zitat:
![]() das hört sich auch vielversprechend an: Zitat:
|
AW: MAC-Adresse eine Gegenseite auslesen
Zitat:
Zitat:
Ein Beispiel sind VoIP-Telefone. Die haben zwar ihre MAC-Adresse in Form eines Aufklebers am Gehäuse. Jedoch A) in Schriftgröße < 4 Pt. und B) keine maschinenlesbare Form wie Barcode usw. Also höchst fehlerträchtig beim Ablesen in größeren Stückzahlen. Die Dinger haben aber den Vorteil, dass sie wenn sie booten, einen DHCPv4-Request absetzen. Insofern noch easy. Ein weiteres Beispiel sind LAN-fähige Baugruppen. Da gibt es in einigen Fällen keinen IP-Stack. Vielmehr laufen die mit vollständig proprietären OS und Protokollen. Da sie sich aber mit Standard-Switches verteilen lassen, müssen sie (so meine Denke) zumindest auf Ethernet aufsetzen. Diese Dinger haben z.T. noch nicht mal einen Aufkleber mit der MAC-Adresse. Ich bin echt überrascht dass es da im Ethernet-Standard kein "Magic Packet" gibt, das einen Peernode dazu veranlasst, seine MAC-Adresse auszuspucken. Bezw. einen gemeinsamen Standard, welchen sie nutzen um sich, wenn sie an einen Switch angeschlossen werden, diesem bekannt zu machen. Ich dachte bisher immer, auf den unteren Protokollebenen würde das nicht vom Betriebssystem sondern von den Firmwares der Ethernet-Controller übernommen und es gäbe da sowas wie den kleinsten gemeinsamen Nenner. |
AW: MAC-Adresse eine Gegenseite auslesen
Hmm..
Also wenn der Rechner nicht noch an einem weiteren Netzwerk hängt und nur mit dem Gerät direkt verbunden ist, sollte es mit einem ARP Sniffer gehen. Normalerweise sendet jedes Gerät beim Verbinden mit dem Netzwerk ein ARP-Request, um eine IP-Adresse z.B. von einem DHCP zugewiesen zu bekommen. Somit braucht Du nur auf diese Pakete zu lauschen und wenn beim Anschließen des Gerätes eine neue MAC auftaucht, wird die es wohl sein! Hier mal ein Link zu einem Sniffer, welcher mit WinPCap die ARP-Requests liefern kann: ![]() Da dieser mit Delphi erstellt wurde, kannst Du ihn so anpassen, dass er nur ARP-Pakete Logt. Eine Erweiterung um einen automatischen Ausdruck des Etikettes sollte dann ja kein Problem sein. Somit würde immer bei Einstecken eines neuen Gerätes automatisch ein MAC-Etikett ausgedruckt. |
AW: MAC-Adresse eine Gegenseite auslesen
Das schaut sehr interessant aus! Was sich in den Tiefen der DP so alles findet :-)
|
AW: MAC-Adresse eine Gegenseite auslesen
Zitat:
Es ist immer das Problem die richtigen Suchbegriffe zu finden. ;) Ich hatte mich mal mit dem Thema 'AMAZON dash button' beschäftigt, und da kann man den Button auch nur über dessen MAC identifizieren. |
AW: MAC-Adresse eine Gegenseite auslesen
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:01 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