Guten Morgen zusammen,
ich versuche momentan WoL auf Linux und Windoof zum laufen zu bringen. Die fsockopen Lösung aus dem Forum funktioniert auf dem Linux nicht (Permission denied). Die folgende Lösung funktioniert unter beiden Systemen, ich bekomme jedoch auf dem Windoof (php 5.5.3) immer die Meldung: "Warning: socket_set_option()".
Code:
Woran kann das liegen? Sollte man "socket_set_option" nicht verwenden, oder hat die Funktion eine gravierende Sicherheitslücke?
Danke für eure Hilfe.
Gruß
Talker
ich versuche momentan WoL auf Linux und Windoof zum laufen zu bringen. Die fsockopen Lösung aus dem Forum funktioniert auf dem Linux nicht (Permission denied). Die folgende Lösung funktioniert unter beiden Systemen, ich bekomme jedoch auf dem Windoof (php 5.5.3) immer die Meldung: "Warning: socket_set_option()".
Code:
PHP-Code:
function wake_up ($mac_addr, $broadcast) {
$addr_byte = str_split($mac_addr,2);
$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); //WARNING
if($opt_ret)
{
nagios_return(2, "setsockopt() failed, error: " . strerror($opt_ret) . "\n");
}
$e = socket_sendto($s, $msg, strlen($msg), 0, $broadcast, 2050);
socket_close($s);
}
}
Danke für eure Hilfe.
Gruß
Talker
Kommentar