Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Wake On Lan by PHP Script

Frage Entwicklung PHP

Mitglied: do1hrm

do1hrm (Level 1) - Jetzt verbinden

13.04.2011 um 15:50 Uhr, 3686 Aufrufe, 8 Kommentare

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?


01.
<?php 
02.
 
03.
function WakeOnLan($mac,$ip='255.255.255.255') { 
04.
 $mac_exploded=explode(':',$mac); 
05.
 $hw_addr=''; 
06.
 for($i=0;$i<6;$i++) $hw_addr.=chr(hexdec($mac_exploded[$i])); 
07.
 $msg=str_repeat(chr(255),6); 
08.
 $msg.=str_repeat($hw_addr,16); 
09.
 
10.
 $socket=socket_create(AF_INET,SOCK_DGRAM,SOL_UDP); 
11.
 socket_set_option($socket,SOL_SOCKET,SO_BROADCAST,1); 
12.
 socket_sendto($socket,$msg,strlen($msg),0,$ip,7); 
13.
echo socket_strerror(socket_last_error($socket)); 
14.
 socket_close($socket); 
15.
 
16.
17.
 
18.
WakeOnLan('20:CF:30:43:95:CD'); 
19.
 
20.
 
21.
 
22.
function wakeup ($mac_addr, $broadcast = '255.255.255.255') {  
23.
 
24.
    if (!$fp = fsockopen('udp://' . $broadcast, 2304, $errno, $errstr, 2))  
25.
        return false;  
26.
 
27.
    $mac_hex = preg_replace('=[^a-f0-9]=i', '', $mac_addr);  
28.
 
29.
    $mac_bin = pack('H12', $mac_hex);  
30.
 
31.
    $data = str_repeat("\xFF", 6) . str_repeat($mac_bin, 16);  
32.
 
33.
    fputs($fp, $data);  
34.
    fclose($fp);  
35.
    return true;  
36.
}  
37.
 
38.
 
39.
wakeup('20:CF:30:43:95:CD'); 
40.
 
41.
?>
Mitglied: 99045
13.04.2011 um 16:21 Uhr
Hi,

so versuchen:
wakeup('20-CF-30-43-95-CD');

Gruß
Bitte warten ..
Mitglied: do1hrm
13.04.2011 um 16:57 Uhr
Okay das ist auch ne Möglichkeit. Aber bringt leider auch keine Fortschritte, wird leider nach wie vor "scheinbar" kein UDP-Paket ins Netzwerk versendet...
Bitte warten ..
Mitglied: 99045
13.04.2011 um 17:04 Uhr
Ich kenne mich mit PHP nicht aus, sendest du etwa an Port 7 anstatt an Port 9?
Bitte warten ..
Mitglied: do1hrm
13.04.2011 um 17:15 Uhr
Sind meines Wissens nach beides typische Ports. Andere Progs haben sowohl an Port 7 als auch völlig andere Ports gesendet und da gabs bisher auch keine Schwierigkeiten...
Bitte warten ..
Mitglied: dog
13.04.2011 um 17:24 Uhr
wakeup('20-CF-30-43-95-CD');

Das ist schnurz.
Er könnte auch
'(: 20ÖrniCFMörni30Jörni43Hörni95WörniCD .-:=0=:-.'
schreiben und das Script würde es genauso erkennen.

01.
error_reporting(E_ALL|E_STRICT); 
02.
ini_set('display_errors','On');
an den Anfang vom Script und dann reden wir weiter.
Bitte warten ..
Mitglied: do1hrm
13.04.2011 um 17:32 Uhr
Habe ich leider auch schon versucht, keinerlei Fehlermeldung...
Bitte warten ..
Mitglied: do1hrm
13.04.2011 um 17:40 Uhr
Der Code von dieser Seite sendet offenbar keine UDP-Pakete? Zumindest bringt der immerhin ne Fehlermeldung, was nicht verwunderlich ist, wenn er vergeblich auf ne Antwort wartet...

Meldung:
Warning: fsockopen() [function.fsockopen]: unable to connect to 192.168.178.10:9 (Ein Verbindungsversuch ist fehlgeschlagen, da die Gegenstelle nach einer bestimmten Zeitspanne nicht richtig reagiert hat, oder die hergestellte Verbindung war fehlerhaft, da der verbundene Host nicht reagiert hat. ) in D:\Programming\xampp\htdocs\WakeOnLan.php on line 44
Warnung: 10060 Ein Verbindungsversuch ist fehlgeschlagen, da die Gegenstelle nach einer bestimmten Zeitspanne nicht richtig reagiert hat, oder die hergestellte Verbindung war fehlerhaft, da der verbundene Host nicht reagiert hat.


01.
<?php 
02.
 
03.
function wakeup2($mac_addr,$router_addr) { 
04.
     if ($fp = fsockopen($router_addr, 9, $errno, $errstr, 4)) { 
05.
          //erlaubte Zeichen: 
06.
          $hexchars = array("0","1","2","3","4","5","6","7","8","9"
07.
          "A","B","C","D","E","F"
08.
          "a","b","c","d","e","f" 
09.
          ); 
10.
 
11.
 
12.
     // 6 "volle" bytes (Also mit Wert 255 bzw. FF in hexadezimal) 
13.
     $data = "\xFF\xFF\xFF\xFF\xFF\xFF"
14.
     $hexmac = ""
15.
      
16.
     // Jetzt werden unnötige zeichen in der mac-adresse 
17.
     // entfern (also z.B. die bindestriche usw.) 
18.
     for ($i = 0; $i < strlen($mac_addr); $i++) { 
19.
          if (!in_array(substr($mac_addr, $i, 1), $hexchars)) { 
20.
               $mac_addr = str_replace(substr($mac_addr, $i, 1), "", $mac_addr); 
21.
22.
23.
 
24.
     for ($i = 0; $i < 12; $i += 2) { 
25.
          $hexmac .= chr(hexdec(substr($mac_addr, $i, 2))); 
26.
27.
 
28.
     // Hexadresse wird 16mal hintereinandergeschrieben 
29.
     for ($i = 0; $i < 16; $i++) { 
30.
          $data .= $hexmac
31.
32.
     fputs($fp, $data); 
33.
     fclose($fp); 
34.
     return true; 
35.
36.
Else
37.
     echo "<b>Warnung: $errno</b> $errstr<br>"
38.
     return false; 
39.
40.
}  
41.
 
42.
wakeup2('20:CF:30:43:95:CD','192.168.178.255'); 
43.
 
44.
?>
Bitte warten ..
Ähnliche Inhalte
PHP
gelöst Übergabe Formularinhalte an externes PHP Script (15)

Frage von schneerunzel zum Thema PHP ...

LAN, WAN, Wireless
gelöst Windows 10 - Wake on Lan Problem (4)

Frage von Jannis92 zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
gelöst Wake on LAN funktioniert teilweise nicht (11)

Frage von DarkScabs zum Thema LAN, WAN, Wireless ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst ZIP-Archive nach Dateien durchsuchen und Pfade ausgeben (33)

Frage von evinben zum Thema Batch & Shell ...

Router & Routing
Routingproblem in Homerouter-Kaskade mit Raspi (19)

Frage von Oldschool zum Thema Router & Routing ...

Server
Freenas schlechte Schreib Performance bei NFS (16)

Frage von janosch12 zum Thema Server ...

LAN, WAN, Wireless
Buffolo AccessPoint IP vergessen - herausfinden (9)

Frage von staybb zum Thema LAN, WAN, Wireless ...