Hallo, habe eine kleines Problem und bisher auch keine Lösung im Internet gefunden vielleicht stehe ich aber auch einfach auf dem Schlauch. Ich möchte mit Hilfe eines Arduinos mit Ethernet Shield die Mac Adresse des angeschlossenen Gerätes auslesen und anzeigen (es wird immer nur ein Gerät angeschlossen). Das Anzeigen ist für mich kein Problem. Ich habe allerdings in der Dokumentation und im Internet noch keine Infos über das auslesen von MAC-Adressen gefunden. Ich bedanke mich schon einmal im voraus für eure Hilfe. Grüße Erik
:
Verschoben durch Moderator
Broadcast oder Multicast wären Möglichkeiten, falls die angeschlossenen Geräte darauf reagieren.
Theor schrieb: > Broadcast oder Multicast wären Möglichkeiten, falls die angeschlossenen > Geräte darauf reagieren. Die Vielfalt der Protokoll-Möglichkeiten bezüglich Ethernet und TCP wird dem Arduino-User leider vorenthalten, damit wäre er womöglich überfordert und der Code würde unermesslich anwachsen. Die vorgegebene Klasse bietet nur einige User-Datenübertragungen an. Wenn ich mich recht erinnere ist es beim Arduino Ethernet-Shield (basierend auf dem W5100/W5500) gar nicht möglich an das Roh- Datenpaket (das eine Ethernet Adresse preisgeben könnte) zu kommen da der Chip gleich die ausgepackten Netto-Daten liefert. Mit dem altehrwürdigen ENC28J60 könnte man den Wunsch des TO umsetzen, ist man dann aber mit einem Software-lastigen und nicht Arduino-fähigem Design beschäftigt .... Aber vielleicht habe ich auch zu wenig Ahnung und ich habe mir nicht alles gemerkt was ich schon so erfahren habe ... YMMV
Ich gucke einfach in die MAC-Address-Table meines Switches. Eine generelle Methode, einem Netzwerkgeraet seine MAC-Adresse abzupressen, gibt es sowieso nicht. Weswegen dann auch regelmaessig ein kleiner Aufkleber auf diesen Kisten klebt.
jo mei schrieb: > Wenn ich mich recht erinnere ist es beim Arduino Ethernet-Shield > (basierend auf dem W5100/W5500) gar nicht möglich an das Roh- > Datenpaket (das eine Ethernet Adresse preisgeben könnte) zu > kommen da der Chip gleich die ausgepackten Netto-Daten liefert. Denke schon. Mindestens der W3100A hat einen "MAC Layer RAW Mode".
:
Bearbeitet durch User
(prx) A. K. schrieb: > Denke schon. Mindestens der W3100A hat einen "MAC Layer RAW Mode". Den Raw Mode gibt es schon aber dann musst du dir dein gesamtes Vorgehen auf TCP selbst zusammenbauen und kannst nicht auf die Chip-Implementierung aufbauen. Will heissen du musst erst per Broadcast herausfinden wer denn alles da ist, dann kannst du nach der Ethernet Adresse suchen die dir genehm ist. Aber der TO will ja aus einem "angeschlossenen Gerät" die MAC Adresse bekommen. Dann zeig mir mal wie das gehen soll. So schnell mal einen Mix zwischen Socket Mode und Raw Mode zusamenwurschteln geht da nicht. Ein Arduino User nutzt die Ethernet-Lib (Klasse) weil er vom Netzwerken sowieso wenig Ahnung hat bzw. wenig Lust hat sich programmiertechnisch dort hineinzusteigern, wie soll er da mit dem Raw Mode eines W5xx zurechtkommen? Die Arduino Ethernet Klasse liefert jedenfalls nichts dazu. Aber - nachdem du mir mit einen kleinen dürren Satz widersprochen hast - du weisst es sicher (besser) und kannst mir das erklären.
In der Frage ging es ausschliesslich um die die MAC-Adresse. Wenn das Gerät freiwillig mal ein Paket schickt, üblicherweise kommt zunächst DHCP, dann kann man den Arduino bzw das Ethernet-Shield direkt an das Gerät anschliessen und muss nur auf ein Paket warten. Umständlicher wirds wenn "stealth", oder wenn da noch mehr passieren soll, als nur die MAC Adresse rauszufinden.
:
Bearbeitet durch User
(prx) A. K. schrieb: > den Arduino direkt an das Gerät anschliessen und muss nur auf ein > Paket warten. Jetzt brauchst du dem TO nur noch schnell ein "kleines" Beispiel- Programm zeigen wie er das machen soll. Wie bereits gesagt: jo mei schrieb: > Die Arduino Ethernet Klasse liefert jedenfalls nichts dazu. Ach so, ich ahne etwas: du willst der Arduino-Klasse eine Erweiterung in Form einer Ableitung spendieren damit der TO endlich sein Ziel erreichen kann.
jo mei schrieb: > Jetzt brauchst du dem TO nur noch schnell ein "kleines" Beispiel- > Programm zeigen wie er das machen soll. Anders als viele halte ich Arduino-Anwender nicht für dumm. Das müssen sie erst einmal beweisen. Aber du hast bewiesen, dass eine Diskussion mit dir nichts bringt.
(prx) A. K. schrieb: > Anders als viele halte ich Arduino-Anwender nicht für dumm. Danke. Mit deinen drei Beiträgen in diesem Thread hast du dem TO in die Lage versetzt sein Ziel zu erreichen. Ich dagegen habe nur vermutet dass es nicht so einfach geht und wurde eines Besseren belehrt.
Cptn Cisco schrieb: > Eine generelle Methode, einem Netzwerkgeraet seine MAC-Adresse > abzupressen, gibt es sowieso nicht. Doch, natürlich: man kommuniziert mit ihm. Entweder ist es willig zu kommunizieren, dann muss es über kurz oder lang auch seine MAC rausrücken oder es will oder kann nicht kommunizieren, dann spielt es auch keine Rolle. Nunja, es sind natürlich auch böswillige Devices denkbar. Die stören aber nur, wenn man das Konzept der Portsicherheit im LAN nicht umgesetzt hat. Dann können die auch nur abkacken. Spoofing (also das Segeln unter geklauter MAC-Identität) geht dann nicht mehr.
Danke für eure Antworten ich bin ja eh der Meinung jeder das Silizium für seinen Prozessor nicht selber gewonnen hat hat kein Recht irgendetwas zu Programmieren. Aber jetzt zum eigentlichen Thema: werde mal eines der DHCPOFFER Pakete abfangen und mit Wireshark analysieren um zu sehen wo die MAC Adresse zu finden ist. Danach werde ich sehen wie man das Paket speichert und nur den richtigen Abschnitt anzeigt. Grüße Erik
Moin, Naja, also die MAC Adressen kommen in jedem Ethernetpaket gleich nach Takteinlauf und Startframedelimiter. Aber diese Info, die du aus Wireshark ziehen kannst, wird dir wenig weiterhelfen. Cptn Cisco schrieb: > Eine generelle Methode, einem Netzwerkgeraet seine MAC-Adresse > abzupressen, gibt es sowieso nicht. Ja, aeh...doch: ARP ist eigentlich das Protokoll, wie man bei einer bestimmten IP Adresse nach deren MAC-Adresse fragen kann. Aber ich hab' keinen Blassen, ob deine HW/SW-Kombi erlaubt, einen ARP abzusetzen und die Antwort auszuwerten, bzw. in den ARP-Cache zu gucken - da wird sie eh' schon drinnenstehen, wenn's sowas gibt und schon mit dem fremden Geraet vor Kurzem gequakt wurde. Gruss WK
>Cptn Cisco schrieb: >> Eine generelle Methode, einem Netzwerkgeraet seine MAC-Adresse >> abzupressen, gibt es sowieso nicht. Korrekt. c-hater schrieb: > Doch, natürlich: man kommuniziert mit ihm. Dergute W. schrieb: > Ja, aeh...doch: ARP ist eigentlich das Protokoll, wie man bei einer > bestimmten IP Adresse nach deren MAC-Adresse fragen kann. Beide Antworten setzen vorraus, dass auf dem Gerät IP bereits konfiguriert ist und man dessen IP-Adresse kennt. Fakt ist, dass es auf dem Ethernet-Layer keine standardisierte Methode gibt, einem Gerät seine MAC-Adresse zu entlocken - die muß es freiwillig rausrücken. Wenn man Glück hat, schickt es nach dem Anstöpseln irgendwelche Pakete raus (DHCP- oder BOOTP-Anfragen, ARP-checks, etc) - dann hat man gewonnen. Wenn es ruhig bleibt, kann man versuchen, ihm ein Paket zu entlocken, z.B indem man Broadcast-Pings sendet (in der Hoffnung, dass IP konfiguriert ist). Wenn das auch nicht klappt, ist man ziemlich aufgeschmissen und sollte den Aufkleber am Gerät suchen.
Moin, foobar schrieb: > Beide Antworten setzen vorraus, dass auf dem Gerät IP bereits > konfiguriert ist und man dessen IP-Adresse kennt. Jepp, stimmt. Habbich vorausgesetzt. Auch so Sachen, dass beide Geraete an einer jeweils fuer das Geraet geeigneten Energieversorgung haengen und eingeschaltet sind. Und dass die Netzwerkkabel richtig angeschlossen sind, ggf. AutoMDX stattfand und sich die Teilnehmer auf ein Sorte Link geeinigt haben, setz' ich mal voraus. Bin in meinem jugendlichen Leichtsinn von einem "normalen" Netzwerk ausgegangen. Gruss WK
So weit ist es schon gekommen, ein normales Netzwerk spricht IP. Früher war das umgekehrt, auf einem normalen Ethernet gab es kein IP :-). Ganz speziell war DecNET, das hat die BIA überschrieben und sich die MAC Adresse aus der Area und Knotennummer gebastelt.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.