Einzelnen Beitrag anzeigen

Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#1

[Wake on Lan] MagicPacket mit UDPSockUtil

  Alt 22. Nov 2008, 11:56
Hallo ihr,

ich versuche gerade in meinem Programm eine Wake on Lan Funktion zu implementieren. Dazu verwende ich die Hier im Forum suchenUDPSockUtil. 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:
Code:
001fd05b4cf1
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
  Mit Zitat antworten Zitat