Ankündigung

Einklappen
Keine Ankündigung bisher.

Wake-on-Lan mit PHP (gelöst)

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Wake-on-Lan mit PHP (gelöst)

    Hallo,

    gibt es eine PHP-Klasse, die Wake-on-Lan beherrscht, also das »Magic Packet« verschicken kann (vermutlich nicht, denn PHP kommt nicht tiefer als fsockopen, oder)?

    Oder alternativ ein (gutes) Kommandozeilentool für Windows (für Linux habe ich eins, dessen GPL-Quellcode ich hier einfach mal poste)?


    Edit: Code wieder entfernt


  • #2
    vieleicht mal anschauen:
    http://www.phpfriend.de/forum/viewto...light=wake+lan
    robo47.net - Blog, Codeschnipsel und mehr
    | Caching-Klassen und Opcode Caches in php | Robo47 Components - PHP Library extending Zend Framework

    Kommentar


    • #3
      Danke, schau ich mir mal an.



      PS: Was isn mit der Suchfunktion los (habe bei wake on lan nichts findne können)?

      Kommentar


      • #4
        ich wußte dass es den thread gab :P hab deshalb nach wake lan geuscht weil er bei wake on lan nix gefunden hat :P
        robo47.net - Blog, Codeschnipsel und mehr
        | Caching-Klassen und Opcode Caches in php | Robo47 Components - PHP Library extending Zend Framework

        Kommentar


        • #5
          So. Ich habe auf Basis einer im o. g. Thread gefundenen Funktion eine Lösung:
          PHP-Code:
          <?php
          function wakeup ($mac_addr$broadcast) {

              if (!
          $fp fsockopen('udp://' $broadcast2304$errno$errstr2))
                  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_bin16);

              
          fputs($fp$data);
              
          fclose($fp);
              return 
          true;
          }

          ?>
          Wichtig war, »udp://« bei fsockopen() mit anzugeben, weil das sonst auf eine TCP-Antwort wartet.

          Das klappt jetzt super im LAN, leider komme ich irgendwie nicht in ein anderes per VPN verbundenes LAN rein (obwohl die Kommunikation sonst klappt).

          In dem anderen Thread ist eine ähnliche Funktion beschrieben worden, bei der man als $broadcast die IP- oder DynDNS-Adresse (s)eines Routers angeben und so einen PC von außen wecken konnte, wenn man eine entsprechende Forwarding-Regel im Router eingerichtet hat.
          Bekloppterweise fragt meiner (DrayTek Vigor 2500) daraufhin immer »Who has 192.168.0.255?«.

          Kommentar

          Lädt...
          X