AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke MAC-Adresse eine Gegenseite auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

MAC-Adresse eine Gegenseite auslesen

Ein Thema von Codehunter · begonnen am 4. Okt 2017 · letzter Beitrag vom 9. Okt 2017
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#1

MAC-Adresse eine Gegenseite auslesen

  Alt 4. Okt 2017, 07:56
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
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: MAC-Adresse eine Gegenseite auslesen

  Alt 4. Okt 2017, 08:15
Guten Morgen,
geht das (http://en.pudn.com/downloads115/sour...482568_en.html) in die richtige Richtung?
Ansonsten könnte noch der arp (arp.exe) cache ausgelesen werden.


Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: MAC-Adresse eine Gegenseite auslesen

  Alt 4. Okt 2017, 08:26
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.
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#4

AW: MAC-Adresse eine Gegenseite auslesen

  Alt 4. Okt 2017, 08:28
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.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: MAC-Adresse eine Gegenseite auslesen

  Alt 4. Okt 2017, 08:31
geht das (http://en.pudn.com/downloads115/sour...482568_en.html) in die richtige Richtung?
Ansonsten könnte noch der arp (arp.exe) cache ausgelesen werden.
Hmm Jain Die obere Lösung setzt auf ICMP und das wiederum setzt auf IPv4 auf. Allerdings ist nicht gesagt, dass auf dem jeweiligen Prüfling ein funktionsfähiger IP-Stack nebst passender IPv4-Adresse vorhanden ist. Der Prüfling ist i.d.R. eine Blackbox, von der man nicht mal weiß ob es da eine IPv4-Adresse gibt und falls doch, in welcher Subnetzmaske die liegt.

ARP geht da schon eher in die richtige Richtung. Denn das liegt nach dem berüchtigten OSI-Schichtenmodell unterhalb von IPv4. Allerdings dient ARP ja auch wieder der IPv4-Adressauflösung. Ich müsste also noch etwas tiefer ansetzen. Vor meinem geistigen Auge werfe ich ein Broadcast-Paket in das gedachte Netzwerk (an dem im vorliegenden Fall nur zwei Teilnehmer angeschlossen sind) und die Gegenstelle antwortet mit einem Paket. Das kann ganz primitiv und völlig losgelöst von IPv4 sein, solange ich das Antwortpaket in mein Delphi-Programm bekomme und darin die MAC-Adresse des Prüflings enthalten ist.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: MAC-Adresse eine Gegenseite auslesen

  Alt 4. Okt 2017, 08:40
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?
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: MAC-Adresse eine Gegenseite auslesen

  Alt 4. Okt 2017, 08:47
Sollte nicht eigentlich auf allen Bauteilen mit RJ45-Buchse immer die MAC-Adresse in der Nähe aufgedruckt sein?
Das stimmt schon. Man muss es nur aus der praktischen Perspektive sehen: Wenn man am Stück 100 oder mehr Prüflinge etikettieren soll und dabei manuell lauter winzig kleine Aufdrucke ablesen soll, passieren zwangsläufig irgendwann Fehler. Daher der Gedanke einer Automation.

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.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: MAC-Adresse eine Gegenseite auslesen

  Alt 4. Okt 2017, 09:05
.. 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
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: MAC-Adresse eine Gegenseite auslesen

  Alt 4. Okt 2017, 09:16
.. 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.
Bitte den GANZEN Thread lesen, nicht nur die letzten Posts. Danke
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

AW: MAC-Adresse eine Gegenseite auslesen

  Alt 4. Okt 2017, 13:59
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz