Allumer une machine dans un réseau (wake on lan)

Contenu du snippet

Un wake on lan que j'ai déjà publié sur le forum.
Je pense qu'il sera plus visible ici vu les difficultés que j'ai eu à trouver des renseignements pour ecrire cette source en php.
Le principe :
On ouvre une socket sur le réseau et on broadcast FF FF FF FF FF FF + 16 * l'adresse mac de la machine à réveiller

Source / Exemple :


<?php 

 class Wol{
   private $nic;
     public function wake($mac){ 
         $this->nic = fsockopen("udp://255.255.255.255", 9); 
         if( !$this->nic ){ 
             fclose($this->nic); 
             return false; 
         } 
         else{ 
             fwrite($this->nic, $this->pacquet($mac)); 
             fclose($this->nic); 
             return true; 
         } 
     } 
 
     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();   
//   Remplacer    001122334455   par l'adresse mac du pc à allumer         
 $wol->wake('001122334455');      

?>

Conclusion :


Cette source est écrite en php5 mais si on supprime les "Public/Private" ... on se retrouve en php4.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.