cs_olbou621
Messages postés9Date d'inscriptionvendredi 3 janvier 2003StatutMembreDernière intervention 2 novembre 2008 20 déc. 2009 à 16:01
Je suis désolé, mais cette source ne fonctionne qu'en PHP5 :-((.
Je te conseil d'ailleurs de quitter PHP4 qui me semble... disons ... un peu dépassé.
Tu insiste? Bon d'accord. Essaye ce code (sans engagement de ma part car je n'ai plus d'environnement PHP4).
Pour finir, j'ai quand même un doute à cause de tes erreurs sur la fonction fsockopen().
A quoi sert la fonction chr ? J'ai regarder sur PHP.net mais j'ai pas compris :s
Pourquoi 0xFF ? Ca correspond à quoi ?
Merci d'avance :)
cs_olbou621
Messages postés9Date d'inscriptionvendredi 3 janvier 2003StatutMembreDernière intervention 2 novembre 2008 30 mai 2008 à 18:34
Génial
édite le code source et je t'édite un billet de 5 euros !
starfix2006
Messages postés1Date d'inscriptionmercredi 12 avril 2006StatutMembreDernière intervention30 mai 2008 30 mai 2008 à 09:49
On arrive à des trucs pas trop mal chez Free en se creusant un peu la tête...
Pour preuve: http://wakeonwan.free.fr
cs_olbou621
Messages postés9Date d'inscriptionvendredi 3 janvier 2003StatutMembreDernière intervention 2 novembre 2008 5 févr. 2008 à 08:04
Cette source est destinée à un lan. Sur internet, (chez FREE par exemple) il est probable que l'adresse 255.255.255.255 soit bloquée.
Les trames ont dèjà beaucoup de mal à passer un simple routeur ... alors chez un hebergeur, je pense que cela ne peut pas aller bien loin.
@+
lassie14
Messages postés45Date d'inscriptiondimanche 29 mai 2005StatutMembreDernière intervention 3 mai 2010 4 févr. 2008 à 19:53
je n'arrive pas a faire marcher ta source
je l'ai essayez chez free il sont en php 4 j'ai donc enlever les private et public
ça marchait toujours pas j'ai donc supprimer la classe et enlever tous ce qui faut
et maintenantj'ai une erreur a l'ouverture du socket:
Warning: fsockopen() [function.fsockopen]: unable to connect to 255.255.255.255:9 in /mnt/129/sdc/8/1/****/wake.php on line 5
Warning: fclose(): supplied argument is not a valid stream resource in /mnt/129/sdc/8/1/******/wake.php on line 7
herrads
Messages postés1Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention30 janvier 2008 30 janv. 2008 à 18:01
je viens de le voir. Je l'ai souvent plutôt fait en batch
Merci de l'info
yuuzhantar
Messages postés1Date d'inscriptionmercredi 8 novembre 2000StatutMembreDernière intervention22 janvier 2008 22 janv. 2008 à 21:17
Salut
je ne savais pas qu'on pouvais faire des sockets en php
tu viens de m'apprendre quelque chose
merci
valneandre
Messages postés35Date d'inscriptionmardi 7 novembre 2006StatutMembreDernière intervention18 septembre 2009 21 janv. 2008 à 09:00
Intéressante ressource système, ça change un peu des bouts de code frimeurs qui nous arrivent en surnombre.
merci.
Valnéandre
jantosze
Messages postés72Date d'inscriptionmercredi 29 mai 2013StatutMembreDernière intervention15 mai 2009 19 janv. 2008 à 14:34
Salut,
Sujet intéressant. Au même titre du contrôle de l'ouverture de la socket, avant je ferai un test sur la longueur de la mac adresse en cas d'erreur de saisie.
cdt
JAN
cs_yoman64
Messages postés592Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 4 décembre 2008 18 janv. 2008 à 13:22
Au passage je te pris de m'escuser tu vérifie bien si le socket s'ouvre, j'avais pas fait attention :).
cs_olbou621
Messages postés9Date d'inscriptionvendredi 3 janvier 2003StatutMembreDernière intervention 2 novembre 2008 18 janv. 2008 à 11:33
Bonjour,
Je suis tout à fait d'accord avec toi. Il y aurait beaucoup à dire sur cette source mais son but est avant tout de donner quelque chose qui fonctionne.
Le principe du wake on lan en php si tu veux.
Charge reste à l'utilisateur d'adapter et de gérer les erreurs.
@+
cs_yoman64
Messages postés592Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 4 décembre 2008 18 janv. 2008 à 10:45
Salut,
Cette source est intéressante et je ne me souviens pas en avoir déja vu une de ce genre ici :).
Juste deux petites remarques:
Ici: for($i = 0; $i < 6; $i++){$packet .= chr(0xFF);}
Pourquoi faire un for, c'est pas très utile il me semble qu'un $packet = "\xFF\xFF\xFF\xFF\xFF\xFF"; suffierait emplement.
Et une gestion au moin minimal des erreurs serait bien, vérification si le mac est valide, si le socket s'ouvre bien.
20 déc. 2009 à 16:01
Je te conseil d'ailleurs de quitter PHP4 qui me semble... disons ... un peu dépassé.
Tu insiste? Bon d'accord. Essaye ce code (sans engagement de ma part car je n'ai plus d'environnement PHP4).
Pour finir, j'ai quand même un doute à cause de tes erreurs sur la fonction fsockopen().
Bon courage et tiens nous au courant ;-)
<?php
function wake($mac){
$nic = fsockopen("udp://255.255.255.255", 9);
if( !$nic ){
fclose($nic);
return false;
}
else{
fwrite($nic, $pacquet($mac));
fclose($this->nic);
return true;
}
}
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;
}
// Remplacer 001122334455 par l'adresse mac du pc à allumer
wake('001122334455');
?>
16 déc. 2009 à 19:53
Merci
15 déc. 2009 à 16:07
15 déc. 2009 à 15:57
cette source ne marche pas sur mon réseau local
j'ai la même erreur que lassie14
Warning: fsockopen(): php_hostconnect: connect failed in /var/www/html/applications/gestion_wol/fonctions.inc.php on line 78
Warning: fsockopen(): unable to connect to 255.255.255.0:9 in /var/www/html/applications/gestion_wol/fonctions.inc.php on line 78
Warning: fclose(): supplied argument is not a valid stream resource in /var/www/html/applications/gestion_wol/fonctions.inc.php on line 80
pourtant je suis bien sur un réseau local :s
A+
Arnaud
31 mai 2008 à 17:07
CHR(num) est une fonction qui revoie le caractère correspondant au chiffre "num".
Exemple chr(0x41) retourne A chr(0x42) retourne B ... etc
0xFF cad FF en hexa c'est ... 255 en décimale
chr(0xFF) me permet d'inscrire dans une chaine le caractère FF (255 de la table ascii). Caractère qui n'est pas imprimable.
Pourquoi écrire le caractère FF. Je te conseil de visité le site de wikipédia au sujet du wake on line http://fr.wikipedia.org/wiki/Wake-on-LAN .
Bon courage
31 mai 2008 à 15:22
Je trouve ton code super intéressant.
Je viens de le tester dans une application que je développe.
Par contre je ne comprends pas cette partie :
for($i = 0; $i < 6; $i++){
$packet .= chr(0xFF);
}
A quoi sert la fonction chr ? J'ai regarder sur PHP.net mais j'ai pas compris :s
Pourquoi 0xFF ? Ca correspond à quoi ?
Merci d'avance :)
30 mai 2008 à 18:34
édite le code source et je t'édite un billet de 5 euros !
30 mai 2008 à 09:49
Pour preuve: http://wakeonwan.free.fr
5 févr. 2008 à 08:04
Les trames ont dèjà beaucoup de mal à passer un simple routeur ... alors chez un hebergeur, je pense que cela ne peut pas aller bien loin.
@+
4 févr. 2008 à 19:53
je l'ai essayez chez free il sont en php 4 j'ai donc enlever les private et public
ça marchait toujours pas j'ai donc supprimer la classe et enlever tous ce qui faut
et maintenantj'ai une erreur a l'ouverture du socket:
Warning: fsockopen() [function.fsockopen]: unable to connect to 255.255.255.255:9 in /mnt/129/sdc/8/1/****/wake.php on line 5
Warning: fclose(): supplied argument is not a valid stream resource in /mnt/129/sdc/8/1/******/wake.php on line 7
30 janv. 2008 à 18:01
Merci de l'info
22 janv. 2008 à 21:17
je ne savais pas qu'on pouvais faire des sockets en php
tu viens de m'apprendre quelque chose
merci
21 janv. 2008 à 09:00
merci.
Valnéandre
19 janv. 2008 à 14:34
Sujet intéressant. Au même titre du contrôle de l'ouverture de la socket, avant je ferai un test sur la longueur de la mac adresse en cas d'erreur de saisie.
cdt
JAN
18 janv. 2008 à 13:22
18 janv. 2008 à 11:33
Je suis tout à fait d'accord avec toi. Il y aurait beaucoup à dire sur cette source mais son but est avant tout de donner quelque chose qui fonctionne.
Le principe du wake on lan en php si tu veux.
Charge reste à l'utilisateur d'adapter et de gérer les erreurs.
@+
18 janv. 2008 à 10:45
Cette source est intéressante et je ne me souviens pas en avoir déja vu une de ce genre ici :).
Juste deux petites remarques:
Ici: for($i = 0; $i < 6; $i++){$packet .= chr(0xFF);}
Pourquoi faire un for, c'est pas très utile il me semble qu'un $packet = "\xFF\xFF\xFF\xFF\xFF\xFF"; suffierait emplement.
Et une gestion au moin minimal des erreurs serait bien, vérification si le mac est valide, si le socket s'ouvre bien.
@+