begin process at 2010 02 10 09:20:15
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseau & Internet

 > WAKE ON LAN (WAN) RÉVEILLER SA MACHINE SUR INTERNET

WAKE ON LAN (WAN) RÉVEILLER SA MACHINE SUR INTERNET


 Information sur la source

Note :
Aucune note
Catégorie :Réseau & Internet Classé sous :wake, on, lan, wan, réveiller Niveau :Débutant Date de création :17/10/2008 Date de mise à jour :17/10/2008 20:33:06 Vu / téléchargé :6 711 / 439

Auteur : gmni

Ecrire un message privé
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description

Ce code circule très peu sur la toile, pourtant c'est bien utile
de passer par PHP pour activer sa machine du mode veille. Il n'est pas de moi, l'auteur est cité. Il fonctionne très bien sur les pages perso de FREE.

Source

  • index.php --> page d'acceuil (formulaire) :
  • ---------------------------------------------
  • <html>
  • <!-- Victor d'Agostino 2007 (Libre de redistribution) -->
  • <!-- admin[at]vdagost[dot]org -->
  • </head>
  • <body>
  • <center>
  • <br><br><br>
  • <form action="result.php" method="post">
  • <!-- ----------- -->
  • <?php
  • $yip = $_SERVER["REMOTE_ADDR"];
  • echo "Adresse IP ou nom de domaine : <input type=\"text\" name=\"ip\" value=\"$yip\"/> <br>";
  • ?>
  • <!-- ----------- -->
  • Adresse mac du pc &agrave; reveiller : <input type="text" name="mac" value="00:11:22:33:44:55"/><br>
  • Port <select name="port">
  • <option label="9">9</option>
  • <option label="7">7</option>
  • </select> ( Verifiez que le port est bien redirig&eacute; )<br>
  • Mot de passe du BIOS : <input type="password" size="5" name="passbios"/> ( facultatif )<br><br>
  • <div style="text-align:center;"><input type="submit" value="Wake On Wan"/></div>
  • </form>
  • </td></tr>
  • </table>
  • </center>
  • </body>
  • </html>
  • ---------------------------------------------
  • result.php --> srcipt PHP (appelé par le formulaire) :
  • -------------------------------------
  • <?php
  • /*
  • * Victor d'Agostino 2007 (Libre de redistribution)
  • * admin[at]vdagost[dot]org
  • */
  • function secure_string($string)
  • {
  • $string = stripslashes($string);
  • $string = htmlentities($string);
  • $string = strip_tags($string);
  • return $string;
  • }
  • function wake_on_wan($addr, $mac,$port, $pwd)
  • {
  • $addr_byte = explode(':', $mac); //Suppression des doubles points et creation du tableau
  • $hw_addr = ''; //variable de l'adresse physique
  • 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;
  • $mdp = strlen($pwd);
  • if($mdp!=0)
  • {
  • $completion = 6 - $mdp;
  • $msg .= $pwd;
  • for($i=0;$i<$completion;$i++)
  • $msg .= chr(hexdec(00));
  • }
  • $s = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
  • if($s == false) {
  • echo '<b>Erreur du cot&eacute; serveur ou parametres invalides</b><br />';
  • echo "<i>Creation du socket impossible</i>\n";
  • return FALSE;
  • }
  • else
  • {
  • $opt_ret = socket_set_option($s, 1, 6, TRUE);
  • if($opt_ret <0) {
  • echo "<b>Erreur du cot&eacute; serveur</b><i>socket_set_option</i>\n";
  • return FALSE;
  • }
  • if(socket_sendto($s, $msg, strlen($msg), 0, $addr, $port)) {
  • echo "<b>Signal de reveil envoy&eacute; &agrave; $addr pour $mac sur le port $port</b><br />";
  • if($mdp!=0)
  • echo "<b>Mot de passe utilisateur BIOS : oui</b>\n";
  • else
  • echo "\n";
  • socket_close($s);
  • return TRUE;
  • }
  • else {
  • echo "<b>Erreur lors de l'envoi du signal</b><br />";
  • echo "<i>Mauvais parametres ou parametres absents</i>\n<br />";
  • return FALSE;
  • }
  • }
  • }
  • flush();
  • $p_ip = secure_string($_POST["ip"]);
  • $p_mac = secure_string($_POST["mac"]);
  • $p_port = $_POST["port"];
  • $p_mdp = secure_string($_POST["passbios"]);
  • echo "<html><head><title>Wake On WAN $p_ip ($p_mac) sur port $p_port</title>\n";
  • echo '<meta name="robots" content="noindex, nofollow"/>';
  • echo "\n</head>\n\n<body>\n";
  • echo "<table class=\"tabform\"><tr><td><br>\n";
  • //--------
  • wake_on_wan($p_ip, $p_mac, $p_port, $p_mdp);
  • //--------
  • echo "<br></body></html>";
  • ?>
  • -------------------------------------
index.php --> page d'acceuil (formulaire) :
---------------------------------------------
<html> 
<!-- Victor d'Agostino 2007 (Libre de redistribution) --> 
<!-- admin[at]vdagost[dot]org --> 
</head> 

<body> 
<center>
<br><br><br>
<form action="result.php" method="post"> 
<!-- ----------- -->
<?php 
$yip = $_SERVER["REMOTE_ADDR"]; 
echo "Adresse IP ou nom de domaine : <input type=\"text\" name=\"ip\" value=\"$yip\"/> <br>"; 
?>
<!-- ----------- -->
Adresse mac du pc &agrave; reveiller : <input type="text" name="mac" value="00:11:22:33:44:55"/><br> 
Port <select name="port"> 
<option label="9">9</option> 
<option label="7">7</option> 
</select> ( Verifiez que le port est bien redirig&eacute; )<br> 
Mot de passe du BIOS : <input type="password" size="5" name="passbios"/> ( facultatif )<br><br>
<div style="text-align:center;"><input type="submit" value="Wake On Wan"/></div> 
</form> 
</td></tr>
</table>
</center>
</body> 
</html>  
---------------------------------------------


result.php --> srcipt PHP (appelé par le formulaire) :
-------------------------------------
<?php 

/* 
 *  Victor d'Agostino 2007 (Libre de redistribution) 
 *  admin[at]vdagost[dot]org 
 */ 

function secure_string($string) 
{ 
  $string = stripslashes($string); 
  $string = htmlentities($string); 
  $string = strip_tags($string); 
  return $string; 
} 

function wake_on_wan($addr, $mac,$port, $pwd) 
 {

  $addr_byte = explode(':', $mac);   //Suppression des doubles points et creation du tableau 
  $hw_addr = '';  //variable de l'adresse physique 

  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; 
  
  $mdp = strlen($pwd); 
  if($mdp!=0) 
   { 
    $completion = 6 - $mdp; 
   $msg .= $pwd; 
    
   for($i=0;$i<$completion;$i++) 
   $msg .= chr(hexdec(00)); 
   } 
    
  $s = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); 

  if($s == false) { 
    echo '<b>Erreur du cot&eacute; serveur ou parametres invalides</b><br />'; 
    echo "<i>Creation du socket impossible</i>\n"; 
    return FALSE; 
   } 
  else 
    { 
   $opt_ret = socket_set_option($s, 1, 6, TRUE); 
   if($opt_ret <0) { 
     echo "<b>Erreur du cot&eacute; serveur</b><i>socket_set_option</i>\n"; 
     return FALSE; 
     } 
   if(socket_sendto($s, $msg, strlen($msg), 0, $addr, $port)) { 
     echo "<b>Signal de reveil envoy&eacute; &agrave; $addr pour $mac sur le port $port</b><br />"; 
     if($mdp!=0) 
     echo "<b>Mot de passe utilisateur BIOS : oui</b>\n"; 
     else 
     echo "\n"; 
     socket_close($s); 
     return TRUE; 
     } 
   else { 
     echo "<b>Erreur lors de l'envoi du signal</b><br />"; 
     echo "<i>Mauvais parametres ou parametres absents</i>\n<br />"; 
     return FALSE; 
     } 
   } 
 } 

flush(); 

$p_ip = secure_string($_POST["ip"]); 
$p_mac = secure_string($_POST["mac"]); 
$p_port = $_POST["port"]; 
$p_mdp = secure_string($_POST["passbios"]); 

echo "<html><head><title>Wake On WAN $p_ip ($p_mac) sur port $p_port</title>\n";
echo '<meta name="robots" content="noindex, nofollow"/>'; 
echo "\n</head>\n\n<body>\n"; 
echo "<table class=\"tabform\"><tr><td><br>\n"; 
//--------
wake_on_wan($p_ip, $p_mac, $p_port, $p_mdp); 
//--------
echo "<br></body></html>"; 

?>
-------------------------------------

 Conclusion

Testé sur Windows XP et Mac 0SX depuis un PC distant.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

17 octobre 2008 20:33:06 :
->correction

 Sources de la même categorie

SONDAGE - VOTE - POLL (AVEC MYSQL) par hornet_bzz
Source avec Zip Source avec une capture CRAYONPRO EST UN CMS SIMPLE EN PHP ET MYSQL - INSTALLATION E... par crayoncie
Source avec Zip Source avec une capture LISTENGEN GÉNÉRATEUR DE FICHIER PLAYLIST par AGG
Source avec Zip IP CALCULATOR par X_Cli
Source avec Zip Source avec une capture WHOIS DOMAIN CLASS : LOOKUP & AVAIBILITY par aKheNathOn

 Sources en rapport avec celle ci

ALLUMER UNE MACHINE DANS UN RÉSEAU (WAKE ON LAN) par olbou621

Commentaires et avis

Commentaire de simonviei le 20/10/2008 06:54:54

Plop :)

1- Il faut faire de l'objet
2- Séparation du rendu html de ton code php
3- Un poil de commentaire serait nickel ^^

Voila :)

Commentaire de yoman64 le 22/10/2008 04:27:06

Hello,

De l'objet pour un code comme ça n'aurait pas grand intérêt d'autant plus qu'il n'y a qu'une fonction et qu'instancier un objet est coûteux...

Par contre oui séparer le html du code php, la fonction devrait retourner un code d'erreur, thrower des exceptions ou encore retourner true/false mais pas afficher de html.

L'autre reproche qu'on pourrait faire c'est que récemment (enfin il y a quelques mois) une source similaire a été postée:
http://www.phpcs.com/codes/ALLUMER-MACHINE-DANS-RESEAU-WAKE-ON-LAN_45455.aspx


a+

Commentaire de olbou621 le 02/11/2008 18:25:35

Bonjour,

C'est vrai que ta source "ressemble" à la mienne, mais ...
La tienne apporte un plus :

- Elle serait utilisable sur un WAN.
- Elle exploite le mot de passe bios.

Donc, "MA" source (qui est en fait une source en C que j'ai adapté au php et dont je ne connais pas l'auteur) ( donc c'est pas vraiment la mienne ) ( mais quand même un petit peu) ne se trouve nullement offensé.

Cela dit, c'est vrai que ton code jetté en vrac comme ça avec du php mélangé au html, ce n'est pas très propre. Enfin bon, je suis sûr que si quelqun en a besoin, il lui sera simple de remettre un peu d'ordre.

Merci donc de nous faire part de ta trouvaille.  

Cdlt
olbou621

Commentaire de gmni le 13/11/2008 23:55:47

Merci olbou621, en effet le but n'est pas de copier ou refaire
une source, mais ici c'est de la diffuser pour ceux qui veulent
bien prendre ce qu'il y a dedans, voir l'utiliser...
aplus; gmni.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Wake on lan [ par Elektordi ] Est-ce que quelqu'un sait commant allumer un PC a distance (qui supporte le WOL) via une interface PHP tournant sur un serveur siué sur le même réseau wake on lan [ par salehtch ] SAS salut offaite j ai de probleme avec le wake on lan je ve le fonctionné via le internet en local sa marche mais je l es fai avec le magik packe publication sur LAN + easyphp [ par twiems ] TwiemsBonjourJ'ai un prôblème concernant la publication d'un site intranet avec easyphp. Ce site se trouve sur un ordinateur du réseau et je souhaite tester presence machines sur un LAN [ par Elkaire ] Voila mon probleme j'aimerais savoir si il est possible de tester la presence de machine sur un reseaux afin de renseigner un client socket. Voici com Un nom de domaine en LAN avec Apache [ par grandvizir ] Bonjour,J'ai EasyPhp 1.7 (soit PHP 4.4.3.3) sous Apache 1.3.27 avec Windows 98SE.H&#233;bergeant un site en r&#233;seau local, serait-il possible (et reseau lan en pascal [ par baileys57 ] bonjour,je suis un debutant en turbo pascal et je suis a la recherche d'un code source pour faire un reseau en dhcp, car je veux relier des pc pour le modifier un plugin de mon portail [ par xavier230573 ] bonjour à tous j'utilise ce plugin pour présenter des videosj'aimerai uploadé plusieur video en même temp car le plugin enregistre une seul video <br


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,640 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales