WAKE ON LAN - PHP
Aus VDR Wiki
Wakeup per PHP
Eine eigene Internet-Service Anwendung für WAKE ON LAN per PHP-Skript ist keine größere Schwierigkeit. Um einen Rechner aus einer PHP Anwendung heraus direkt zu starten, kann auch die unten stehende Funktion verwendet werden.
/** * Verschickt ein WakeOnLan Paket an eine gegebene IP oder Broadcast Adresse * Die Mac Adresse muss im Format xx:xx:..:xx angegeben werden * * @param string $mac Hardware Adresse des Servers * @param string $addr IP oder Broadcast an die das Paket soll * @param integer $port Portadresse * @return boolean */ function WakeOnLan($mac, $addr, $port) { $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)); return false; } else { $opt_ret = socket_set_option($s, 1, 6, TRUE); if($opt_ret < 0) { echo "setsockopt() failed, error: " . strerror($opt_ret) . "\n"; return false; } $e = socket_sendto($s, $msg, strlen($msg), 0, $addr, $port); socket_close($s); return true; } }