Wake On Lan by PHP Script
Hallo zusammen,
mal wieder habe ich ein kleines Problem, bei dem ich allmählich nicht mehr weiter weiß. Ich versuche gerade ein PHP Script zu verwenden, welches ein magic packet ins lokale netzwerk einspeisen soll. Dies habe ich sowohl mit einem eigenen simplen Script, sowie vielen öffentlichen Scripts aus dem Internet versucht. Alle schlagen fehl.
Viele Probleme habe ich bereits aus dem Weg geräumt. Beide PCs hängen am gleichen Switch, Firewall abgeschaltet. Durch ein PC-Tool (welches ein Magic Packet erzeugt) lässt sich der PC auch erfolgreich aufwecken. Das Problem scheint somit direkt bei dem PHP Script zu liegen. Wireshark habe ich auch bereits zur Hilfe genommen (derzeit auf dem Rechner, auf dem XAMPP / das Script läuft). Zur schnelleren Auffindung des Pakets sende ich extra an die Adresse 255.255.255.255. Die Pakete vom PC-Tool werden gefunden, vom PHP Script jedoch entdecke ich keine entsprechenden Pakete. Ein Code wie echo file_get_contents("http://google.de"); in dem PHP Script erzeugt wieder haufenweise Datenpakete, phpinfo() teilt mir ebenfalls 'Sockets: enabled' mit.
Hat jemand eine Idee wo das Problem liegen könnte?
mal wieder habe ich ein kleines Problem, bei dem ich allmählich nicht mehr weiter weiß. Ich versuche gerade ein PHP Script zu verwenden, welches ein magic packet ins lokale netzwerk einspeisen soll. Dies habe ich sowohl mit einem eigenen simplen Script, sowie vielen öffentlichen Scripts aus dem Internet versucht. Alle schlagen fehl.
Viele Probleme habe ich bereits aus dem Weg geräumt. Beide PCs hängen am gleichen Switch, Firewall abgeschaltet. Durch ein PC-Tool (welches ein Magic Packet erzeugt) lässt sich der PC auch erfolgreich aufwecken. Das Problem scheint somit direkt bei dem PHP Script zu liegen. Wireshark habe ich auch bereits zur Hilfe genommen (derzeit auf dem Rechner, auf dem XAMPP / das Script läuft). Zur schnelleren Auffindung des Pakets sende ich extra an die Adresse 255.255.255.255. Die Pakete vom PC-Tool werden gefunden, vom PHP Script jedoch entdecke ich keine entsprechenden Pakete. Ein Code wie echo file_get_contents("http://google.de"); in dem PHP Script erzeugt wieder haufenweise Datenpakete, phpinfo() teilt mir ebenfalls 'Sockets: enabled' mit.
Hat jemand eine Idee wo das Problem liegen könnte?
<?php
function WakeOnLan($mac,$ip='255.255.255.255') {
$mac_exploded=explode(':',$mac);
$hw_addr='';
for($i=0;$i<6;$i++) $hw_addr.=chr(hexdec($mac_exploded[$i]));
$msg=str_repeat(chr(255),6);
$msg.=str_repeat($hw_addr,16);
$socket=socket_create(AF_INET,SOCK_DGRAM,SOL_UDP);
socket_set_option($socket,SOL_SOCKET,SO_BROADCAST,1);
socket_sendto($socket,$msg,strlen($msg),0,$ip,7);
echo socket_strerror(socket_last_error($socket));
socket_close($socket);
}
WakeOnLan('20:CF:30:43:95:CD');
function wakeup ($mac_addr, $broadcast = '255.255.255.255') {
if (!$fp = fsockopen('udp://' . $broadcast, 2304, $errno, $errstr, 2))
return false;
$mac_hex = preg_replace('=[^a-f0-9]=i', '', $mac_addr);
$mac_bin = pack('H12', $mac_hex);
$data = str_repeat("\xFF", 6) . str_repeat($mac_bin, 16);
fputs($fp, $data);
fclose($fp);
return true;
}
wakeup('20:CF:30:43:95:CD');
?>
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 164517
Url: https://administrator.de/contentid/164517
Ausgedruckt am: 22.11.2024 um 17:11 Uhr
8 Kommentare
Neuester Kommentar
Hi,
so versuchen:
Gruß
so versuchen:
wakeup('20-CF-30-43-95-CD');
Gruß
Ich kenne mich mit PHP nicht aus, sendest du etwa an Port 7 anstatt an Port 9?