Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wake on lan, skrypt "wake on lan"
dnawrot
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 26.06.2004

Ostrzeżenie: (0%)
-----


Mam pytanko. Niestety jestem początkujący jeśli chodzi o php, niemniej jednak chciałbym napisac lub zdobyć skrypt do pobudzania kompów w LAN'ie. Wiem, że do tego służy funkcja Wake on Lan, stąd taki temat postu. Nawet nie wiem od czego się zabrać i czy w ogóle da się napisać taki skrypcik. Thx z góry za odpowiedzi.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Sh4dow
post
Post #2





Grupa: Zarejestrowani
Postów: 569
Pomógł: 0
Dołączył: 17.08.2003
Skąd: Dąbrowa Górnicza

Ostrzeżenie: (0%)
-----


Ponownie wielkie trzewia manuala otworzyly sie wypuszczajac stwora zwanego WOL, ktory zostal stworzony z czesc jego tworzyciela
  1. <?php
  2. # Wake on LAN - (c) HotKey@spr.at, upgraded by Murzik <tomurzik@inbox.ru>
  3.  
  4.  
  5. function WakeOnLan($addr, $mac)
  6. {
  7.  $addr_byte = explode(':', $mac);
  8.  $hw_addr = '';
  9.  
  10.  for ($a=0; $a < 6; $a++) $hw_addr .= chr(hexdec($addr_byte[$a]));
  11.  
  12.  $msg = chr(255).chr(255).chr(255).chr(255).chr(255).chr(255);
  13.  
  14.  for ($a = 1; $a <= 16; $a++) $msg .= $hw_addr;
  15.  
  16.  // send it to the broadcast address using UDP
  17.  // SQL_BROADCAST option isn't help!!
  18.  $s = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
  19.  if ($s == false)
  20.  {
  21. echo &#092;"Error creating socket!n\";
  22. echo &#092;"Error code is '\".socket_last_error($s).\"' - \" . socket_strerror(socket_last_error($s));
  23.  }
  24.  else
  25.  {
  26.  // setting a broadcast option to socket:
  27. $opt_ret = socket_set_option($s, 1, 6, TRUE);
  28. if($opt_ret < 0)
  29. {
  30.  echo &#092;"setsockopt() failed, error: \" . strerror($opt_ret) . \"n\";
  31. }
  32. $e = socket_sendto($s, $msg, strlen($msg), 0, $addr, 2050);
  33. socket_close($s);
  34. echo &#092;"Magic Packet sent (\".$e.\") to \".$addr.\", MAC=\".$mac;
  35.  }
  36. }
  37.  
  38. #WakeOnLan('yourIPorDomain.dyndns.org', 'your:MAC:address');
  39. #WakeOnLan('192.168.0.2', '00:30:84:2A:90:42');
  40. #WakeOnLan('192.168.1.2', '00:05:1C:10:04:05');
  41.  
  42. //if you have switch or other routing devices in LAN, sendign to
  43. // the local IP isn't helps! you need send to the broadcast address like this:
  44. WakeOnLan('192.168.1.255', '00:05:1C:10:04:05');
  45.  
  46. ?>
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 23:52