[php] Script Wake on Lan via router

Pagina: 1
Acties:
  • 40 views sinds 30-01-2008

  • Paters
  • Registratie: Februari 2003
  • Niet online
Ik heb het volgende scriptje op een website van mij staan:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
function WakeOnLan($addr, $mac) { # (C)opyright 2K2 hotkey@spr.at
  $addr_byte = explode(':', $mac);

  $hw_addr = '';
  for ($a=0; $a < 6; $a++) $hw_addr .= chr(hexdec($addr_byte[$a]));
       
  $msg = chr(255).chr(255).chr(255).chr(255).chr(255).chr(255);
  for ($a = 1; $a <= 16; $a++) $msg .= $hw_addr;

  # send it to the broadcast address using UDP
  $s = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
  if ($s == false) {
   echo "Error creating socket!\n";
   echo "Error:".socket_strerror(socket_last_error($s));
  } else {        
   $e = socket_connect($s, $addr, 2050);
   if ($e == false) {
     echo "connection failed\n";
     echo "Error:".socket_strerror(socket_last_error($s));
   } else {            
     $e = socket_setopt($s, SOL_SOCKET, SO_BROADCAST, 1);
     $e = socket_write($s, $msg, strlen($msg));
     socket_close($s);
           
     echo "Magic Packet sent (".$e.") to ".$addr.", MAC=".$mac;
   }
  }
}

WakeOnLan('bla.bla.bla.bla', 'xx:xx:xx:xx:xx:xx'); #put the MAC-to-be-woken here!
# IP must be 255.255.255.255 - at least it didnt work otherwise... ?>

Wanneer ik dit scriptje laad dan wordt mijn computer (zonder router) opgestart. Echter heb ik nu een router tussen mijn computer en het internet staan. Helaas werkt dit scriptje nu niet meer. Ik heb poort 9 gemapt naar m'n pc. Echter weet ik niet van welke poort het scriptje gebruik maakt. Ik heb van 2050 al eens 9 gemaakt, maar dat werkt ook niet. Weet iemand wat ik in het scriptje moet veranderen om gebruik te maken van poort 9?

[ Voor 6% gewijzigd door Paters op 27-11-2004 14:51 ]


  • Kuhlie
  • Registratie: December 2002
  • Niet online
Ik denk dat je geen broadcast moet kiezen.

  • Paters
  • Registratie: Februari 2003
  • Niet online
Maar wat moet ik dan veranderen aan het script?

  • M55
  • Registratie: September 2003
  • Niet online

M55

Paters schreef op zaterdag 27 november 2004 @ 14:51:
Ik heb het volgende scriptje op een website van mij staan:

Wanneer ik dit scriptje laad dan wordt mijn computer (zonder router) opgestart. Echter heb ik nu een router tussen mijn computer en het internet staan. Helaas werkt dit scriptje nu niet meer. Ik heb poort 9 gemapt naar m'n pc. Echter weet ik niet van welke poort het scriptje gebruik maakt. Ik heb van 2050 al eens 9 gemaakt, maar dat werkt ook niet. Weet iemand wat ik in het scriptje moet veranderen om gebruik te maken van poort 9?
Ik weet niet of hij zo maar op poort 9 mag draaien, volgens mij moet
je voor poorten < 1024 namelijk root zijn.

[ Voor 47% gewijzigd door M55 op 27-11-2004 17:12 ]


  • Paters
  • Registratie: Februari 2003
  • Niet online
M55 schreef op zaterdag 27 november 2004 @ 17:09:
[...]


Ik weet niet of hij zo maar op poort 9 mag draaien, volgens mij moet
je voor poorten < 1024 namelijk root zijn.
Ik snap niet wat je precies bedoelt.

Via www.dslreports.com/wakeup kan ik mijn computer (achter de router) wel gewoon opstarten. Deze website maakt gebruik van poort 9 (udp).

  • Paters
  • Registratie: Februari 2003
  • Niet online
Hmm...wanneer ik dit scriptje laad krijg ik de volgende melding:
Magic Packet sent (102) to bla.bla.bla.bla, MAC=xx:xx:xx:xx:xx:xx
Aangezien er 102 staat, heb ik poort 102 (udp) gemapt. Nu werkt WOL wel. Ik snap alleen niet hoe het scriptje er bij komt om het via poort 102 te sturen. Nergens in het scriptje staat 102. Weet iemand hoe dit komt?

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:44

Creepy

Tactical Espionage Splatterer

Ja.

Zoek op PHP.NET eens de info van socket_write op. Wat socket_write teruggeeft wordt in $e gezet en afgedrukt. Ga me nu niet vertellen dat je dat zelf niet in het script hebt gezien.

Daarnaast is het script blijkbaar niet van jezelf. Support op scripts van een ander mag je zelf gaan zoeken bij die ander (hint: 2K2 hotkey@spr.at). daar is GoT niet voor bedoeld.

Het doormappen van poorten op je firewall is niet echt nodig aangezien het pakket al via de broadcast wordt verstuurt (dit staat notabene in het commentaar van het script!). De broadcast doormappen lijkt me niet verstandig ;)

Al met al gaat dit topic dus dicht.

[ Voor 5% gewijzigd door Creepy op 27-11-2004 21:42 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.