AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Magic Packet richtig zusammenstellen
Thema durchsuchen
Ansicht
Themen-Optionen

Magic Packet richtig zusammenstellen

Ein Thema von stev-e87 · begonnen am 23. Mai 2009 · letzter Beitrag vom 24. Mai 2009
Antwort Antwort
Seite 1 von 2  1 2      
stev-e87

Registriert seit: 28. Feb 2009
20 Beiträge
 
#1

Magic Packet richtig zusammenstellen

  Alt 23. Mai 2009, 12:40
Hallo,

ich versuche gerade meinen Rechner per WoL zu starten und benutze dazu den Code von Swissdelphicenter in leicht abgeänderter Art:

Delphi-Quellcode:
procedure Wake_On_LAN(Mac:String);
var
  Data, temp: string;
  k, n: integer;
begin
  Data := '';
  for k := 0 to 5 do
  begin
    Data := Data + Chr(StrToInt('$FF')); // 6x add a FF / 6x ein FF hinzufügen
  end;
  temp := StringReplace(Mac, '-', '', [rfReplaceAll]);
  for k := 0 to 15 do
  begin
    temp := StringReplace(Mac, '-', '', [rfReplaceAll]);
    for n := 0 to 5 do
    begin
      // 16x add Target-Mac-Adress / 16x die Ziel-Macadresse hinzufügen
      Data := Data + Chr(StrToInt('$' + temp[1] + temp[2]));
      Delete(temp, 1, 2);
    end;
  end;
  with Wnd_Main.IdUDPClient_WoL do begin
  //Example with TIdUDPClient of Indy
  Host:= '192.168.2.255';
  Port:= 2304;
  Send(Data); // Send it / Verschick es
  end;
end;
Änderungen:
- die Mac übergebe ich der Prozedur anstatt diese auszulesen (ist ja eh immer die gleiche ), auch in der Form 11-22-33-44-55-66
- Den Host tausche ich bei jedem Versuch von 255.255.255.255 auf 192.168.2.255

selbstverständlich ist Broadcast_Enable und Active bei der Indy Kompo True. Mit nem anderen funktionierenden Tool gehts, den rechner zu wecken.

Besonders lustig ist auch die Ausgabe von Wireshark:

Meine Variante bringt folgenden Quatsch (nur Datenteil):

0000 79 79 79 79 79 79 00 0d 61 45 1a 75 00 0d 61 45 yyyyyy..aE.u..aE
0010 1a 75 00 0d 61 45 1a 75 00 0d 61 45 1a 75 00 0d .u..aE.u..aE.u..
0020 61 45 1a 75 00 0d 61 45 1a 75 00 0d 61 45 1a 75 aE.u..aE.u..aE.u
0030 00 0d 61 45 1a 75 00 0d 61 45 1a 75 00 0d 61 45 ..aE.u..aE.u..aE
0040 1a 75 00 0d 61 45 1a 75 00 0d 61 45 1a 75 00 0d .u..aE.u..aE.u..
0050 61 45 1a 75 00 0d 61 45 1a 75 00 0d 61 45 1a 75 aE.u..aE.u..aE.u
0060 00 0d 61 45 1a 75 ..aE.u

wohingegen das andere Tool-wie es sein sollte, 6x FF am Anfang gefolgt von 16x Mac bringt, was Wireshark auch direkt als WoL identifiziert...

Bei anderen hat doch aber dieses Skript auch funktioniert...
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: Magic Packet richtig zusammenstellen

  Alt 23. Mai 2009, 12:46
Hi,

Weiß nicht ob das dein Fehler ist. Wahrscheinlich nicht, aber das hier:

Data := Data + Chr(StrToInt('$FF')); kann man auch einfach so schreiben:

Data := Data + Chr($FF); Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Magic Packet richtig zusammenstellen

  Alt 23. Mai 2009, 12:50
Man könnte sogar gleich Data := #255#255#255#255#255#255 daraus machen.

Hast du mal im Debugger geschaut, was beim Versenden in Data steht?
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
436 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: Magic Packet richtig zusammenstellen

  Alt 23. Mai 2009, 13:04
So, oder bei den Schweizern nachsehen: Klick

Blödsinn sorry ! (Kommt davon wenn man nicht alles liest! )

Hier gibt es noch etwas dazu Klick
  Mit Zitat antworten Zitat
stev-e87

Registriert seit: 28. Feb 2009
20 Beiträge
 
#5

Re: Magic Packet richtig zusammenstellen

  Alt 23. Mai 2009, 13:06
Hi,

also der Debugger liefert das für Data:

'ÿÿÿÿÿÿ'#0#$D'aE'#$1A'û'#0#$D'aE'#$1A'û'#0#$D'aE'# $1A'û'#0#$D'aE'#$1A'û'#0#$D'aE'#$1A
'û'#0#$D'aE'#$1A'û'#0#$D'aE'#$1A'û'#0#$D'aE'#$1A'û '#0#$D'aE'#$1A'û'#0#$D'aE'#$1A'û'#0#
$D'aE'#$1A'û'#0#$D'aE'#$1A'û'#0#$D'aE'#$1A'û'#0#$D 'aE'#$1A'û'#0#$D'aE'#$1A'û'#0#$D'aE'#$1A'û'

Auch nix anderes als die oben geposteten Bytes...

@Apollonius,Neutral General

Das vereinfacht zwar die Schreibweise, ändert aber leider am Resultat nix.

Hmmm-...
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#6

Re: Magic Packet richtig zusammenstellen

  Alt 23. Mai 2009, 13:51
Such mal hier in der DP nach Wake on Lan und Magic Packet. Da sollte es imho schon fertige Lösungen zu geben..
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
stev-e87

Registriert seit: 28. Feb 2009
20 Beiträge
 
#7

Re: Magic Packet richtig zusammenstellen

  Alt 23. Mai 2009, 14:21
Die fast immer auf die schweizer Lösung rauslaufen, die ich benutze...
  Mit Zitat antworten Zitat
stev-e87

Registriert seit: 28. Feb 2009
20 Beiträge
 
#8

Re: Magic Packet richtig zusammenstellen

  Alt 23. Mai 2009, 17:56
Mich wundert auch ganz stark, dass der Wireshark in der einfachsten Form, wenn data:=#255#255#255#255#255#255 oder eben 5x $FF ist ohne den ganzen Rest ranzuhängen 79 79 79 79 79 79 statt FF FF FF FF FF FF ergibt.Ist das jetzt vielleicht ein Problem der Indy (10.1) Komponenten? Da seh ich nicht mehr so ganz durch ...
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

Re: Magic Packet richtig zusammenstellen

  Alt 23. Mai 2009, 18:11
Hi,

Also meine Vermutung ist: Wenn die Send-Methode einen String erwartet, dann vielleicht einen darstellbaren?! Wobei... evtl ist $FF darstellbar. Aber vielleicht zählen auch nur 7-Bit ASCII Zeichen

Was ich sagen will: Gibt es auch ne Send-Methode die nen Pointer oder sowas erwartet? Sodass du die Daten "roh" verschickst anstatt sie als String zu verschicken.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
stev-e87

Registriert seit: 28. Feb 2009
20 Beiträge
 
#10

Re: Magic Packet richtig zusammenstellen

  Alt 23. Mai 2009, 18:28
Weiß ich jetzt nicht, könnte wohl noch sendbuffer verwenden aber da wollte er glaub ich auch ne Rückwandlung RawToString oder so.
die Mac-Adresse übergibt er ja bis auf die lezten beiden Bytes wiederum richtig... ein Kuddelmuddel ist das...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz