Bonjour,
Voila le script que j'utilise :
<?php
flush();
function wol($addr, $mac,$socket_number)
{
$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;
$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
{
$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, $socket_number);
socket_close($s);
echo "L'ordinateur Mandoline 192.168.2.18 a été réveillé.n"; //nom et IP de l'ordinateur réveillé
}
}
$socket_number = "32446"; // tout nombre entre 1-40000
$mac_addy = "00:e0:4c:68:9c:2d"; // adresse mac de l'ordinateur à réveiller
$ip_addy = "192.168.2.255"; // Adresse de Broadcast du réseau
wol($ip_addy, $mac_addy,$socket_number);
?>
je le nomme wol.php et je le place dans un répertoire wol sur le serveur web de mon syno.
Je l'appelle à distance par http://mon_domaine/wol/wol.php à partir d'un navigateur.
Pas de port à ouvrir, tout se passe sur mon réseau local.
Cordialement.
Michel.