diff --git a/wol.php b/wol.php new file mode 100644 index 0000000..d95d8c3 --- /dev/null +++ b/wol.php @@ -0,0 +1,50 @@ + +// 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); + + ?>