Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2307 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] envoyer des données directement via adresse MAC ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] envoyer des données directement via adresse MAC ?

n°1752405
schlopa67
Posté le 27-06-2008 à 17:03:09  profilanswer
 

Bonjour,
 
J'ai une question qui peut vous paraître ultra bête (bon je suis pas non plus une flèche en PHP, je débute encore)
 
 
Je souhaite faire un petit bout de code PHP me permettant de voir si un ordinateur sur mon réseau local est allumé ou non (si vous avez une petites idées de la manière pour y arriver, je suis preneur), avec un zoli bouton qui me permettrait d'envoyer un "paquet magique". Je précise que le serveur web est sur le même réseau local, et qu'entre les différents PC il n'y a pas de routeur.
 
Pour le moment je m'attaque plutôt à la partie "envoi des paquets magiques"
 
 
Est-il possible d'envoyer un paquet précis sachant que j'ai UNIQUEMENT une adresse MAC ?
Par ailleurs, je suppose qu'il faut créer un socket pour envoyer ce paquet en udp, non ?  
 
/!\ MON SERVEUR EST SOUS FREEBSD /!\
 
 
 
merci pour vos précisions
 
 

Message cité 1 fois
Message édité par schlopa67 le 27-06-2008 à 17:15:51
mood
Publicité
Posté le 27-06-2008 à 17:03:09  profilanswer
 

n°1752410
babasss
Posté le 27-06-2008 à 17:07:49  profilanswer
 
n°1752412
babasss
Posté le 27-06-2008 à 17:09:15  profilanswer
 

schlopa67 a écrit :

Est-il possible d'envoyer un paquet précis sachant que j'ai UNIQUEMENT une adresse MAC ?


Si tu n'as pas l'IP, en théorie, tu peux broadcaster. Aprés il faut voir si les hub/switch/routeur que tu as l'accepte....


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1752414
schlopa67
Posté le 27-06-2008 à 17:10:39  profilanswer
 

arghhh mais j'avais pas vu ça !!
 
ça me semble être ce que je cherche
 
merci !! :)

n°1752416
babasss
Posté le 27-06-2008 à 17:14:22  profilanswer
 
n°1752424
schlopa67
Posté le 27-06-2008 à 17:21:55  profilanswer
 

Citation :

 Pourquoi s'embêter ? => http://www.depicus.com/wake-on-lan [...] n-com.aspx


 
ARF je viens de remarquer un small détail qui a tt son importance : mon serveur est sous FreeBSD alors le VisualBasic ne fait pas parti des languages à utiliser
 

Citation :

Si tu n'as pas l'IP, en théorie, tu peux broadcaster. Aprés il faut voir si les hub/switch/routeur que tu as l'accepte....


 
C'est mon intention.  
 
J'ai déjà testé des logiciels de WakeOnLan qui fonctionne très bien. Donc je suppose que mes switch apachèr sont compatibles  :)  
 

Citation :

 Et ici sans objet COM : http://www.hackernotcracker.com/20 [...] cript.html


 
Je suis déjà tombé dessus. Mais J'ai une erreur lors du lancement du script :  
 

Code :
  1. Warning: socket_set_option() [function.socket-set-option]: unable to set socket option [22]: Invalid argument in /mnt/ad4s2/blabla/wol.php on line 55


 
la ligne en question :  
 

Code :
  1. $opt_ret = socket_set_option($s, 1, 6, TRUE);


 
Donc voilà  
 
 
En plus je ne comprends pas pourquoi il parle d'adresse IP là dedans. Mon ordinateur est éteint et n'a donc pas d'@IP !
 
Et pis j'aurai aimé faire ça moi même si possible (petit satisfaction au bout)

n°1752825
Anonymouse
Posté le 28-06-2008 à 21:05:05  profilanswer
 

Je ne connais rien en php
 
Mais d'après moi travailler au niveau des sockets impose de travailler sur la couche transport (couche 4) or l'adresse Mac se situe au niveau de la couche de liaison (couche 2) donc voila pourquoi l'on parle d'adresse Ip dans les sockets. Et voila pourquoi les sockets ne sont pas appropriées pour ce que tu veux faire.


Message édité par Anonymouse le 28-06-2008 à 21:11:14
n°1752902
schlopa67
Posté le 29-06-2008 à 10:05:49  profilanswer
 

pas bête du tout comme raisonnement
 
y aurait-il une autre méthode ?
 
[:aelenia]

n°1752912
Anonymouse
Posté le 29-06-2008 à 10:50:14  profilanswer
 

schlopa67 a écrit :

pas bête du tout comme raisonnement
 
y aurait-il une autre méthode ?
 
[:aelenia]


 
Aucune idée :(
 
Faudrait se renseigner sur le fonctionnement des logiciels de Wake On Lan
 
voila un script trouvé sur Ubuntu:
 
http://doc.ubuntu-fr.org/wakeonlan?s=wake%20script
 

Code :
  1. <?
  2.          # Wake on LAN - (c) HotKey@spr.at, upgraded by Murzik
  3.          # Modified by Allan Barizo http://www.hackernotcracker.com
  4.          flush();
  5.        
  6.          function WakeOnLan($addr, $mac,$socket_number) {
  7.            $addr_byte = explode(':', $mac);
  8.            $hw_addr = '';
  9.            for ($a=0; $a <6; $a++) $hw_addr .= chr(hexdec($addr_byte[$a]));
  10.            $msg = chr(255).chr(255).chr(255).chr(255).chr(255).chr(255);
  11.           for ($a = 1; $a <= 16; $a++) $msg .= $hw_addr;
  12.           // send it to the broadcast address using UDP
  13.           // SQL_BROADCAST option isn't help!!
  14.           $s = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
  15.           if ($s == false) {
  16.             echo "Error creating socket!\n";
  17.             echo "Error code is '".socket_last_error($s)."' - " . socket_strerror(socket_last_error($s));
  18.             return FALSE;
  19.             }
  20.           else {
  21.             // setting a broadcast option to socket:
  22.             $opt_ret = socket_set_option($s, 1, 6, TRUE);
  23.             if($opt_ret <0) {
  24.               echo "setsockopt() failed, error: " . strerror($opt_ret) . "\n";
  25.               return FALSE;
  26.               }
  27.             if(socket_sendto($s, $msg, strlen($msg), 0, $addr, $socket_number)) {
  28.               echo "Magic Packet sent successfully!";
  29.               socket_close($s);
  30.               return TRUE;
  31.               }
  32.             else {
  33.               echo "Magic packet failed!";
  34.               return FALSE;
  35.               }
  36.          
  37.             }
  38.           }
  39.         // Port number where the computer is listening. Usually, any number between 1-50000 will do. Normally people choose 7 or 9.
  40.         $socket_number = "9";
  41.         // MAC Address of the listening computer's network device
  42.         $mac_addy = "XX:XX:XX:XX:XX:XX";
  43.         // IP address of the listening computer. Input the domain name if you are using a hostname (like when under Dynamic DNS/IP)
  44.         $ip_addy = gethostbyname("my.dns.domain.com" );
  45.        
  46.         WakeOnLan($ip_addy, $mac_addy,$socket_number)
  47.    
  48.       ?>



Message édité par Anonymouse le 29-06-2008 à 15:42:28

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] envoyer des données directement via adresse MAC ?

 

Sujets relatifs
[Résolu] Connexion sécurisée à une base de données MySQL[VBA] Déplacer données Table
[XML & PHP]Parcourt d'un fichier XML[Résolu] - [Php] - Fonction Isset
Passerelle vers PHP[Grand Sites Internet] Génération de pages PHP ou HTML
Utilité de "global" en haut d'un fichier PHPPHP agenda / tache reccurentes
Erreur Programmation Objet PHP 5Formulaire Php - Sql
Plus de sujets relatifs à : [PHP] envoyer des données directement via adresse MAC ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR