Wake On Lan

torbin

Grünschnabel
Hallo

Ich will ein Wake on Lan Packet mit C++ erstellen.
Vielleicht kann mir einer sagen welche packete(TCP-UDP) man da nehmen.
Was man beachten soll, muss.
Vielleicht hat das jemand schon mal gemacht und kann mir evtl. code schnipsel als vorlage geben.

Danke im Vorraus

Gruss

T
 
WakeOnLan sollte eigentlich bei jeglichem Zugriff auf die Netzwerkkarte geschehen.
Aber wenn der Rechner aus ist, kannst doch auch Du ihn nicht mehr anschalten.
Normalerweise ist dies eine Funktion des Mainboards bzw der Netzwerkkarte, oder irre ich mich?
 
Du irrst Dich...

...nicht ganz - aber irgendwie doch:

Wenn WOL im Bios aktiviert ist und die LAN-Karte es unterstützt (bei PCI-Karten sollte noch ein Kabel von Ethernet-Karte zum Mainboard gezogen sein ;)) ist es notwendig, Pakete mit bestimmtem Inhalt an die IP-Adresse des Rechners zu schicken. Da der Zielrechner wohl aus ist (warum sonst WOL? ;)) verschickst Du grds. einen [directed] Broadcast mittels UDP. Dieser hat folgenden Inhalt

6x FF & 16x MAC-Adresse des Zielrechners

Dieses Konstrukt wird auch MagicPaket genannt und entstammt AMD. Auf deren Seite sollte es auch Doku dazu geben, ich konnte sie allerdings nicht finden.

Gruß
René

Nachtrag: Schade, dass Du C++ machen willst, in C hätten wir sowas sicher mal gemeinsam umsetzen können. Es nervt mich einfach tierisch, dass mein Kollege ständig seinen Rechner ausschaltet... ;) :)
 
Zuletzt bearbeitet:
Genauso funkioniert es wie es Rene erklärt hat, nur das das Packet an die MAC-Adresse geschickt wird und nicht an die IP-adresse. Da wenn der Rechner aus ist die Netzwerkkarte keine IP hat.
Tools die das machen kann man zu hauf im Netz finden.

Gibt es denn da gravierende unterschiede zwischen C und C++

Ist doch alles C :)

Gruss
 
Du kannst ja kein UDP-Paket an die MAC-Adresse schicken - wie willst Du eine MAC adressieren ;-]? Die einzige Möglichkeit ist hier der Broadcast...
Bei WOL schaut die Netzwerkkarte in jedem Paket nach und sieht dann die 6x FF gefolgt von seiner eigenen MAC-Adresse... und reagiert drauf (deshalb "MagicPaket" ;)), indem eine Info an das BIOS schickt, den Rechner zu aktivieren. Du kannst übrigens auch ein direkt adressiertes Paket (kein Broadcast) schicken, wenn Du den Zielrechner noch in der lokalen arp-Tabelle hast.

Tools im Netz zu suchen ist doch langweilig ;), selber machen ist viel interessanter :).

Gruß
 
Zuletzt bearbeitet:
Warum nicht.


Ich habe mal eine andere Frage, gibt es irgendwo eine Info drübe welche header datei man wöfür benutzen kann.

Kann mir nicht vorstellen das einer alles im kopf hat.

Gruss
 
Was willst Du denn genau wissen?

Die in den .h-Dateien beschriebenen Konstanten findest Du z.B. heraus, indem Du die die .h-Datei einfach anschaust. ;)

Oder was meinst Du mit Deiner Frage konkret?

Gruß
 
Zurück