Socket quand tu nous tiens

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Socket quand tu nous tiens

par CoiKispiCs » 09 févr. 2006, 16:36

c'est pas très pratique de mettre les valeurs au lieu des constantes....
A forciori quand ca marche pas et que d'autre doivent regarder...
tu avais raison il fallait mettre les constante plutot que les valeurs donc j'ai changé
$opt_ret =  socket_set_option($s, 1, 6, TRUE);
Par :
  $opt_ret =  socket_set_option($s, SOL_SOCKET, SO_REUSEADDR, TRUE);
et ça marche maintenant :D

par CoiKispiCs » 09 févr. 2006, 15:52

la fonction WakeOnLan n'est pas de moi je l'ai trouvé sur php.net j'ai beau avoir regardé sous tout les sens je ne vois pas du tout ce qui ne marche pas

par titerm » 09 févr. 2006, 15:44

c'est pas très pratique de mettre les valeurs au lieu des constantes....
A forciori quand ca marche pas et que d'autre doivent regarder...

par CoiKispiCs » 09 févr. 2006, 15:29

$opt_ret =  socket_set_option($s, 1, 6, TRUE); 
celle-ci :lol:

par HD » 09 févr. 2006, 15:28

Laquelle est la ligne 36?

Socket quand tu nous tiens

par CoiKispiCs » 09 févr. 2006, 15:07

Bonjour la communauté :D :D

voilà j'ai un problème :lol: je pense que vous vous en doutez puisque je post dans cet endroit :) :)

voilà le code
<?
flush();

function WakeOnLan($addr, $mac)
{
 $addr_byte = explode('-', $mac);
 $hw_addr = '';

 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;

 // send it to the broadcast address using UDP
 // SQL_BROADCAST option isn't help!!
 $s = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
 if ($s == false)
 {
  echo "Error creating socket!\n";
  echo "Error code is '".socket_last_error($s)."' - " . socket_strerror(socket_last_error($s));
 }
 else
 {
 // setting a broadcast option to socket:
  $opt_ret =  socket_set_option($s, 1, 6, TRUE);
  if($opt_ret < 0)
  {
   echo "setsockopt() failed, error: " . strerror($opt_ret) . "\n";
  }
  $e = socket_sendto($s, $msg, strlen($msg), 0, $addr, 2050);
  socket_close($s);
  echo "Magic Packet sent (".$e.") to ".$addr.", MAC=".$mac;
 }
}
$bdd=mysql_connect("localhost","root","");
mysql_select_db("plop",$bdd);

$requete = "SELECT IP FROM postes WHERE NAME =\"".$_POST['pc']."\" GROUP BY IP";
$result = mysql_query ($requete);
while ($ress = mysql_fetch_array($result)) {
	$adrip = $ress['IP'];
}

$req = "SELECT MAC FROM postes WHERE NAME =\"".$_POST['pc']."\" GROUP BY MAC";
$res = mysql_query ($req);
while ($re = mysql_fetch_array($res)) {
	$adrmac = $re['MAC'];
}

WakeOnLan($adrip, $adrmac)
?>
et voici l'erreur :

Code : Tout sélectionner

Warning: socket_set_option() [function.socket-set-option]: unable to set socket option [0]: Un argument non valide a été fourni. in D:\Program Files\xampp\htdocs\plop\wol2.php on line 36 Magic Packet sent (102) to 172.16.214.3, MAC=00-30-F1-13-56-59
je vois pas du tout le probleme je buche sur ce code depuis un moment et je fais appelle a vous maintenant car j'ai le cerveau en feu :lol: :lol:


merci d'avance

:: CoiKispiCs ::