Ein korrektes WOL-Paket könnte man so abschicken:
Dabei gibt es zwei Sachen zu beachten:
1. Der PORT ist prinzipiell egal, oft wird einfach an Port 0 geschickt. Das "wol" Tool von Suse schickt z.B. an den Port 40000.
2. Die IP muss die Broadcast-Adresse 255.255.255.255 sein, es sei denn man benutzt einen Hub statt eines Switches.
Ein Switch hat intern eine ARP-Tabelle, die IP-Adressen den MAC-Adressen zuordnet. Wird ein IP-Paket an eine Adresse verschickt, dann schaltet der Switch den Quellport an den Zielport durch, an dem diese IP angeschlossen ist. Alle anderen Ports bekommen von dem Paket nichts mit. Lediglich Pakete an die Broadcast-Adresse werden auf alle Ports weitergeleitet, so dass sie sicher auch bei dem WOL-Gerät ankommen und dieses aufwecken können. Bei den alten Hubs gibt es keine Direktverbindungen, hier bekommt jeder Port alle Pakete auf dem Netzwerk mit.
Man könnte sich nun damit behelfen, dass man als IP die zuletzt benutzte IP des WOL-Geräts angibt, allerdings werden die Einträge in der ARP-Tabelle nicht ewig vorgehalten und das WOL-Paket kommt dann möglicherweise nicht mehr zum Ziel.
Das Problem: Momentan unterstützt die sendudp Funktion kein Versenden an Broadcast-Adressen.
Code:
[EibPC] if( delay( systemstart(), 1000u64 ) ) then \\ sendudp (PORT, IP, 255,255,255,255,255,255,\\ 100,185,232,183,127,78,\\ 100,185,232,183,127,78,\\ 100,185,232,183,127,78,\\ 100,185,232,183,127,78,\\ 100,185,232,183,127,78,\\ 100,185,232,183,127,78,\\ 100,185,232,183,127,78,\\ 100,185,232,183,127,78,\\ 100,185,232,183,127,78,\\ 100,185,232,183,127,78,\\ 100,185,232,183,127,78,\\ 100,185,232,183,127,78,\\ 100,185,232,183,127,78,\\ 100,185,232,183,127,78,\\ 100,185,232,183,127,78,\\ 100,185,232,183,127,78) \\ endif
1. Der PORT ist prinzipiell egal, oft wird einfach an Port 0 geschickt. Das "wol" Tool von Suse schickt z.B. an den Port 40000.
2. Die IP muss die Broadcast-Adresse 255.255.255.255 sein, es sei denn man benutzt einen Hub statt eines Switches.
Ein Switch hat intern eine ARP-Tabelle, die IP-Adressen den MAC-Adressen zuordnet. Wird ein IP-Paket an eine Adresse verschickt, dann schaltet der Switch den Quellport an den Zielport durch, an dem diese IP angeschlossen ist. Alle anderen Ports bekommen von dem Paket nichts mit. Lediglich Pakete an die Broadcast-Adresse werden auf alle Ports weitergeleitet, so dass sie sicher auch bei dem WOL-Gerät ankommen und dieses aufwecken können. Bei den alten Hubs gibt es keine Direktverbindungen, hier bekommt jeder Port alle Pakete auf dem Netzwerk mit.
Man könnte sich nun damit behelfen, dass man als IP die zuletzt benutzte IP des WOL-Geräts angibt, allerdings werden die Einträge in der ARP-Tabelle nicht ewig vorgehalten und das WOL-Paket kommt dann möglicherweise nicht mehr zum Ziel.
Das Problem: Momentan unterstützt die sendudp Funktion kein Versenden an Broadcast-Adressen.
Kommentar