Darklord543
Lieutenant
- Registriert
- März 2010
- Beiträge
- 565
Heyo,
ich versuche gerade von einer kleinen Webseite die bei mir daheim auf dem NAS liegt, meine Heimrechner zu starten.
Das Problem das ich mit Wake on Lan habe: Es funktioniert nur solange ich die Ziel-IP eingebe, ein Broadcast im 192.168.1.255 Netz folgt in dem Fehler:
Warning: fsockopen(): unable to connect to udp://192.168.1.255:9 (Permission denied) in /volume1/web/StefanNB-PC.php on line 7 Warnung: 13 Permission denied
Da ich wenig Erfahrung mit PHP habe weis ich nicht genau wo ich den Fehler suchen muss.
Liegt das vielleicht an der PHP-Integration des Synology NAS welches die Seite hostet?
Macht dann das NAS oder der Router im Netz den Broadcast auf 192.168.1.255?
Der Code:
ich versuche gerade von einer kleinen Webseite die bei mir daheim auf dem NAS liegt, meine Heimrechner zu starten.
Das Problem das ich mit Wake on Lan habe: Es funktioniert nur solange ich die Ziel-IP eingebe, ein Broadcast im 192.168.1.255 Netz folgt in dem Fehler:
Warning: fsockopen(): unable to connect to udp://192.168.1.255:9 (Permission denied) in /volume1/web/StefanNB-PC.php on line 7 Warnung: 13 Permission denied
Da ich wenig Erfahrung mit PHP habe weis ich nicht genau wo ich den Fehler suchen muss.
Liegt das vielleicht an der PHP-Integration des Synology NAS welches die Seite hostet?
Macht dann das NAS oder der Router im Netz den Broadcast auf 192.168.1.255?
Der Code:
PHP:
<?php
$mac = 'B0DDF139C268'; //MAC Adresse
$ip = 'udp://192.168.1.255'; //oder mit IP z.B.: udp://192.168.0.1
function wakeup($mac_addr,$router_addr) {
if ($fp = fsockopen($router_addr, 9, $errno, $errstr, 4)) {
$hexchars = array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","a","b","c","d","e","f");//erlaubte Zeichen:
$data = "\xFF\xFF\xFF\xFF\xFF\xFF"; // 6 "volle" bytes (Also mit Wert 255 bzw. FF in hexadezimal)
$hexmac = "";
for ($i = 0; $i < strlen($mac_addr); $i++) { // Unntige Zeichen in der mac-adresse entfernen (also z.B. die bindestriche usw.)
if (!in_array(substr($mac_addr, $i, 1), $hexchars)) {
$mac_addr = str_replace(substr($mac_addr, $i, 1), "",
$mac_addr);
}
}
for ($i = 0; $i < 12; $i += 2) {
$hexmac .= chr(hexdec(substr($mac_addr, $i, 2)));
}
for ($i = 0; $i < 16; $i++) { // Hexadresse wird 16mal hintereinandergeschrieben
$data .= $hexmac;
}
fputs($fp, $data);
fclose($fp);
echo 'MagicPaket wurde verschickt';
return true;
}
Else {
echo "<b>Warnung: $errno</b> $errstr<br>";
return false;
}
}
wakeup($mac, $ip);
?>
Zuletzt bearbeitet: