WOL

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Stephan

Betreff: WOL

BeitragDi, Jan 02, 2007 0:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Gibt es eine Möglichkeit mit BlitzBasic eine WOL (Wake-On-Lan) Funktion zu schreiben?

Ich habe bereits heraus gefunden, dass das Magic Packet 6 mal das Byte FF und danach 16 mal in Folge die Mac-Adresse des Zielrechners beinhaltet.
Es besteht also aus 102 Bytes.

Mein Prob ist nun, dass ich nicht genau weiß mit welchen BB-Funktionen das jetzt umgesetzt werden kann.

Ich habe bereits versucht alles in einen UDP-Stream zu schreiben und zu senden, es hat jedoch nicht gefunzt. Sad

Ich würde mich schon sehr über einen kleinen Tipp freuen. Razz

MfG
Stephan

BtbN

BeitragDi, Jan 02, 2007 0:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Dazu nüste dein Programm ja laufen, während der rechner aus/standy/sonstwas ist, und das sollte nicht zu realisiseren sein.

StepTiger

BeitragDi, Jan 02, 2007 1:08
Antworten mit Zitat
Benutzer-Profile anzeigen
http://stephan.mestrona.net/wol/

Und nein, dazu muss der PC nicht laufen. Lediglich das Motherboard muss es unterstützen und mit Strom versorgt sein (Netzschalter auf "I")
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
 

Stephan

BeitragDi, Jan 02, 2007 1:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde sagen es ist zu realisieren, da es ja schon zahlreiche Tolls gibt, die so etwas können wie z.B. LanStart.

http://www.spettel.de/lanstart/index.html

Die Frage bleibt natürlich ob soetwas mit BB zu realisieren ist, wobei ich denke, dass auch das spätestens mit einer Userlib möglich ist.

StepTiger

BeitragDi, Jan 02, 2007 1:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Teste es einfach. Sende es erst über Broadcast und dann einfach mal direkt an die IP. Wenn Netzwerkkarte und/oder Motherboard es unterstützen, wird eins von beiden funktionieren.
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
 

Steve0

BeitragDi, Jan 02, 2007 1:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Angeblich werden mehrere Protokolle unterstützt aber UDP am häufigsten. Der Port kann (auch wieder angeblich) zwischen 0 und 40000 liegen aber gebräuchlich ist 7 oder 9.
Pixelgenaue 2D SingleSurface Engine!!!

StepTiger

BeitragDi, Jan 02, 2007 1:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab hier gerade noch ein Programm dafür geschrieben. Kann es hier nicht testen, da ich WLAN über USB habe.

Musst es mal probieren.

Code: [AUSKLAPPEN]
;Grafik
Graphics 800,300,0,2

;Stream erstellen
stream=CreateUDPStream(9)

;Adressen festlegen
broadcast_ip$=Input$("Gib bitte die Broadcast Adresse ein:                  ")
adr$=Input$("Gib bitte die MAC Adresse ein. Trennzeichen ist "+Chr(34)+":"+Chr(34)+"   ")

;MAC-Adressen einlesen
mac1=AHEX(Mid$(adr$,1,2))
mac2=AHEX(Mid$(adr$,4,2))
mac3=AHEX(Mid$(adr$,7,2))
mac4=AHEX(Mid$(adr$,10,2))
mac5=AHEX(Mid$(adr$,13,2))
mac6=AHEX(Mid$(adr$,16,2))

;Dokumentation der Adresse
Print "Starte Sendevorgang an die MAC-Adresse:"
Print mac1+":"+mac2+":"+mac3+":"+mac4+":"+mac5+":"+mac6
Print ""

;Sechsmaliges senden der Sequenz $FF
Print "Leite WOL Sequenz ein..."
For sendit=1 To 6
   Print "Sequenz "+sendit+"..."
   WriteByte stream,255
Next
Print ""

;Sechzehnmaliges senden der MAC-Adresse
Print "Starten des WOL Vorgangs..."
For sendMAC=1 To 16
   Print "Vorgang "+sendMAC+"..."
   WriteByte stream,mac1
   WriteByte stream,mac2
   WriteByte stream,mac3
   WriteByte stream,mac4
   WriteByte stream,mac5
   WriteByte stream,mac6
Next
Print ""

;Absenden an UDP-Stream
Print "Starte Übertragung..."
SendUDPMsg stream,INT_IP(broadcast_ip$),9

;Schließen des UDP-Streams
Print "Übertragung abgeschlossen."
Print "Beenden des UDP-Streams."
CloseUDPStream stream
Print ""

;Warte auf Taste
Print "Erfolgreich."
Print "Warte auf Taste."
Print ""
WaitKey

;Programm beenden
Print "Beende Programm."
End

;HEX in Integer umwandeln
Function AHEX(stri$)
   
   l=0
   
   For x=1 To Len(stri$)
      
      d$=Mid$(stri$,x,1)
      
      Select d$
         Case 0,1,2,3,4,5,6,7,8,9
            r=Int(d$)
         Case "A"
            r=11
         Case "B"
            r=12
         Case "C"
            r=13
         Case "E"
            r=14
         Case "F"
            r=15
      End Select
      
      l=l Shl 4 + r
      
   Next
   
   Return l
   
End Function

;String-IP in Integer-IP verwandeln
Function INT_IP(IP$)
   
   a1=Int(Left(IP$,Instr(IP$,".")-1)):IP$=Right(IP$,Len(IP$)-Instr(IP$,"."))
   a2=Int(Left(IP$,Instr(IP$,".")-1)):IP$=Right(IP$,Len(IP$)-Instr(IP$,"."))
   a3=Int(Left(IP$,Instr(IP$,".")-1)):IP$=Right(IP$,Len(IP$)-Instr(IP$,"."))
   a4=Int(IP$)
   
   Return (a1 Shl 24) + (a2 Shl 16) + (a3 Shl 8 ) +a4
   
End Function

Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
 

Stephan

BeitragDi, Jan 02, 2007 15:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Programm sieht wirklich sehr vielversprechend aus, aber leider funktioniert es nicht. Crying or Very sad

Da muss ich wohl noch etwas herumprobieren.

Dabei fällt mir ein, ist das eigentlich richtig, dass weltweit jeder Netzwerkadapter eine einmalige Mac hat? Oder gibt es nur innerhalb eines Herstellers keine Mac doppelt?
 

MolchMitDolch

BeitragDo, Jan 04, 2007 2:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gibt weltweit keine gleichen MAC-Adressen da jeder Hersteller seinen eigenen Nummernbereich hat, dadurch können zwei Firmen nicht die gleichen Adresse vergeben (>1min wikipedia--MAC-Adresse--Herstellerkennungen Very Happy )

...wies aber mit irgendwelcher chinesischer Hinterhofproduktion aussieht weis ich nicht Laughing

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group