Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
Delphi 2009 Professional
|
[Wake on Lan] MagicPacket mit UDPSockUtil
22. Nov 2008, 11:56
Hallo ihr,
ich versuche gerade in meinem Programm eine Wake on Lan Funktion zu implementieren. Dazu verwende ich die UDPSockUtil. Nun stehen die Rechner in der Schule und ich Programmiere gerade über RemoteDesktop. Da die Sicherung (übers Wochenende) für die Rechner raus ist können sie nicht reagieren. Aber es gibt ein Programm mit einer batch wo es schon an sich funktioniert. Aber ich hätte das gerne in meinem Programm selber implementiert. Mein Code ist dabei von den Schweizern. Wobei ich es etwas formatiert habe:
Delphi-Quellcode:
procedure TfrmMain.SendMagicPacket(const AMACAdress: string);
var
MessageData : array of Byte;
i, j: Integer;
begin
SetLength(MessageData, WAKE_ON_LAN_LENGTH);
for i := 0 to 5 do
MessageData[i] := $FF;
for i := 0 to 15 do
for j := 1 to 6 do
MessageData[5 + i * 6 + j] := StrToInt('$' + AMACAdress[j * 2 - 1] + AMACAdress[j * 2]);
udpSocket.RemotePort := 12287;
udpSocket.RemoteHost := '192.168.1.255';
udpSocket.SendBuf(MessageData, WAKE_ON_LAN_LENGTH);
udpSocket.RemotePort := 2007;
end;
Und eigentlich sollte da ungefähr das rauskommen:
Code:
0000 ff ff ff ff ff ff 00 0e a6 63 b0 72 08 00 45 00 .........c.r..E.
0010 00 82 51 69 00 00 80 11 82 e1 05 2e 60 f3 ff ff ..Qi........`...
0020 ff ff 04 5e 2f ff 00 6e 8d d2 [color=#00ff1f][b]ff ff ff ff ff ff[/b][/color] ...^/..n........
0030 00 1f d0 5b 4c f1 00 1f d0 5b 4c f1 00 1f d0 5b ...[L....[L....[
0040 4c f1 00 1f d0 5b 4c f1 00 1f d0 5b 4c f1 00 1f L....[L....[L...
0050 d0 5b 4c f1 00 1f d0 5b 4c f1 00 1f d0 5b 4c f1 .[L....[L....[L.
0060 00 1f d0 5b 4c f1 00 1f d0 5b 4c f1 00 1f d0 5b ...[L....[L....[
0070 4c f1 00 1f d0 5b 4c f1 00 1f d0 5b 4c f1 00 1f L....[L....[L...
0080 d0 5b 4c f1 00 1f d0 5b 4c f1 00 1f d0 5b 4c f1 .[L....[L....[L.
Aber stattdessen bekommt WireShark folgendes ab:
Code:
0000 ff ff ff ff ff ff 00 0e a6 63 b0 72 08 00 45 00 .........c.r..E.
0010 00 82 50 e2 00 00 80 11 65 37 c0 a8 01 02 c0 a8 ..P.....e7......
0020 01 ff 1b 5a 2f ff 00 6e a7 03 40 07 a5 00 ac fb ...Z/..n..@.....
0030 12 00 36 1b 47 00 e4 fd 12 00 2f 1c 47 00 ac fb ..6.G...../.G...
0040 12 00 38 74 44 00 e0 55 a6 00 e8 c4 ab 00 00 00 ..8tD..U........
0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c8 fb ................
0060 12 00 69 74 44 00 11 00 00 00 ec 00 00 00 48 00 ..itD.........H.
0070 00 00 00 00 00 00 48 00 00 48 ec fb 12 00 eb 74 ......H..H.....t
0080 44 00 11 00 00 00 ec 00 00 00 38 fd 12 00 18 74 D.........8....t
Nun beinhaltet MessageData vor dem Absenden folgenden Inhalt:
Code:
(255, 255, 255, 255, 255, 255, 0, 31, 208, 91, 76, 241, 0, 31, 208, 91, 76, 241, 0, 31, 208, 91, 76, 241, 0, 31, 208, 91, 76, 241, 0, 31, 208, 91, 76, 241, 0, 31, 208, 91, 76, 241, 0, 31, 208, 91, 76, 241, 0, 31, 208, 91, 76, 241, 0, 31, 208, 91, 76, 241, 0, 31, 208, 91, 76, 241, 0, 31, 208, 91, 76, 241, 0, 31, 208, 91, 76, 241, 0, 31, 208, 91, 76, 241, 0, 31, 208, 91, 76, 241, 0, 31, 208, 91, 76, 241, 0, 31, 208, 91, 76, 241)
Und folgendes steht in dem Paramter:
Und übersetzt ins hexadezimale (kann man das irgendwie in der Delphi IDE, das array of Bytes Hexadezimal angezeigt werden?) sind zumindest die ersten Werte richtig (dannach habe ich sie nicht weiter überprüft).
MfG
xZise
Fabian Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
|