51 lines
1.2 KiB
PHP
51 lines
1.2 KiB
PHP
<?php
|
|
|
|
// PHP-Wake-On-LAN
|
|
// Par SVNET Libre
|
|
|
|
// GNU GENERAL PUBLIC LICENSE
|
|
// Version 2, June 1991
|
|
|
|
// Copyright (C) 1989, 1991 Free Software Foundation, Inc., <http://fsf.org/>
|
|
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
// Everyone is permitted to copy and distribute verbatim copies
|
|
// of this license document, but changing it is not allowed.
|
|
|
|
// La suite : https://git.framasoft.org/svnet/PHP-WOL/blob/master/LICENSE
|
|
|
|
$addrmac=$_GET['mac'];
|
|
|
|
//Préparation du lien pour atteindre l'ordinateur distant
|
|
class Wol{
|
|
private $nic;
|
|
public function wake($mac){
|
|
$host="udp://".$_GET['host'];
|
|
$this->nic = fsockopen("$host", 9);
|
|
if( !$this->nic ){
|
|
fclose($this->nic);
|
|
return false;
|
|
}
|
|
else{
|
|
fwrite($this->nic, $this->pacquet($mac));
|
|
fclose($this->nic);
|
|
return true;
|
|
}
|
|
}
|
|
|
|
//Préparation des paquets à envoyer
|
|
private function pacquet($Mac){
|
|
$packet = "";
|
|
for($i = 0; $i < 6; $i++){$packet .= chr(0xFF);}
|
|
for ($j = 0; $j < 16; $j++){
|
|
for($i = 0; $i < 12; $i=$i + 2){$packet .= chr(hexdec(substr($Mac, $i, 2)));}
|
|
}
|
|
return $packet;
|
|
}
|
|
}
|
|
|
|
$wol = new Wol();
|
|
// Ordinateur réveilles-toi !!
|
|
$wol->wake($addrmac);
|
|
|
|
?>
|