Пытаясь сделать простой скрипт WakeOnLan с PHP
Попытка сделать небольшой скрипт, который включит сервер. Я нашел несколько примеров в сети, но хотел сохранить это простое / простое, чтобы лучше понять, как все это сочетается. Но это не работает, я понимаю, что где-то нужно указать подсеть 255 255 255 0...
есть идеи?
<?php
//check if server is up and running
$alive = fsockopen("XXX.168.1.1", 80, $errno, $errstr, 2);
if (!$alive) {
echo "<h1>Server is Down!</h1>";
echo "I will try to turn it on now...";
//Creating magic packet
$mac_address = str_repeat("XXX5XXXX5XXX", 16);
$msg = "FFFFFFFFFFFF " . "$mac_address" . "000000000000";
$host_addr = "XXX.168.1.1";
$host_port = "X";
//Connect send and close connection
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
$socket_data = socket_send($socket, $msg, strlen($msg), 0, $host_addr, $host_port);
socket_close($socket);
//testing
//echo
} else {
echo "<h1>Server is Up!</h1>";
fclose($alive);
}
?>
1 ответ
Решение
Проверьте это: http://www.php.net/manual/en/function.socket-sendto.php
И это: http://www.php.net/manual/en/function.socket-send.php
Может быть, даже это: http://www.codeproject.com/Articles/11469/Wake-On-LAN-WOL
Вы обнаружите, что вам нужно установить аргумент ip address в '255.255.255.255', чтобы сделать трансляцию:)