Wake on Lan PHP-script

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

  • Wake on Lan PHP-script

    hallo,

    ich möchte (muss) auf einer passwort-geschützten homepage die funktion einbauen, mit der ich einen pc per click auf einen button starten kann.
    durch suchen bin ich auf diese seite gekommen und habe auch das fertige php-script gefunden, nur leider habe ich keine ahnung, wo ich was eintragen muss.
    ich wäre euch wirklich dankbar, wenn mir jemand die felder einzeichnen könnte, wo ich was eintrage muss um den kübel zum laufen zu bekommen.

    vielen dank im voraus

    lg flow01



    <?php

    $mac = 'xx:xx:xx:xx:xx:xx'; //MAC Adresse
    $ip = 'udp://meindns.dyndns.org'; //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)) {
    //erlaubte Zeichen:
    $hexchars = array("0","1","2","3","4","5","6","7","8","9",
    "A","B","C","D","E","F",
    "a","b","c","d","e","f"
    );


    // 6 "volle" bytes (Also mit Wert 255 bzw. FF in hexadezimal)
    $data = "\xFF\xFF\xFF\xFF\xFF\xFF";
    $hexmac = "";

    // Jetzt werden unntige zeichen in der mac-adresse
    // entfern (also z.B. die bindestriche usw.)
    for ($i = 0; $i < strlen($mac_addr); $i++) {
    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)));
    }

    // Hexadresse wird 16mal hintereinandergeschrieben
    for ($i = 0; $i < 16; $i++) {
    $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);

    ?>
    seite

  • #2
    Falsches Forum !

    Ist das nicht selbsterklärend?

    bei MAC Addresse die MAC Adresse von der Netzwerkkarte eintragen
    und bei IP die ip eintragen z.b. udp://192.168.0.1
    PHP-Code:
    <?php

    $mac 
    'xx:xx:xx:xx:xx:xx'//MAC Adresse
    $ip 'udp://meindns.dyndns.org'//oder mit IP z.B.: udp://192.168.0.1

    function wakeup($mac_addr,$router_addr) {
    if (
    $fp fsockopen($router_addr9$errno$errstr4)) {
    //erlaubte Zeichen:
    $hexchars = array("0","1","2","3","4","5","6","7","8","9",
    "A","B","C","D","E","F",
    "a","b","c","d","e","f"
    );


    // 6 "volle" bytes (Also mit Wert 255 bzw. FF in hexadezimal)
    $data "\xFF\xFF\xFF\xFF\xFF\xFF";
    $hexmac "";

    // Jetzt werden unntige zeichen in der mac-adresse
    // entfern (also z.B. die bindestriche usw.)
    for ($i 0$i strlen($mac_addr); $i++) {
    if (!
    in_array(substr($mac_addr$i1), $hexchars)) {
    $mac_addr str_replace(substr($mac_addr$i1), "",
    $mac_addr);
    }
    }

    for (
    $i 0$i 12$i += 2) {
    $hexmac .= chr(hexdec(substr($mac_addr$i2)));
    }

    // Hexadresse wird 16mal hintereinandergeschrieben
    for ($i 0$i 16$i++) {
    $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);

    ?>

    Kommentar


    • #3
      Also das ist wirklich sowas von eindeutig...
      PHP-Code:
      $mac 'xx:xx:xx:xx:xx:xx'//MAC Adresse
      $ip 'udp://meindns.dyndns.org'//oder mit IP z.B.: udp://192.168.0.1 
      *move* nach Projekthilfe

      Kommentar


      • #4
        hallo,

        freut mich, dass das für euch so selbsterklärend ist,

        wenn ich die ip und die mac adresse eintrage, muss ich da irgendwelche pünktchen, anführungszeichen oder sonst irgendwas davor, dahinter oder sonst wo hinklemmen? und wo füge ich die ganze geschichte dann im dreamweaver ein? ich hätte es einfach zwischen body und body geklemmt, bzw mit notepad ein php-script erstellt und das ganze dann darauf verlinkt.....

        gibt mir da jemand recht?

        danke

        Kommentar


        • #5
          In TobiaZ Post sieht man doch wie das eingetragen wird. Die MAC/IP als String...

          Was das jetzt mit Dreamweaver zu tun hat weiß ich nicht.

          Kommentar


          • #6
            Wollen doch ned so sein
            PHP-Code:
            $mac 'xx:xx:xx:xx:xx:xx'//MAC Adresse so wie sie in den Eingeschaften der Netzwerkkarte genannt wird
            $ip 'udp://meindns.dyndns.org'//oder mit IP z.B.: udp://192.168.0.1

            function wakeup($mac_addr,$router_addr) {
                if (
            $fp fsockopen($router_addr9$errno$errstr4)) {
                    
            //erlaubte Zeichen:
                    
            $hexchars = array("0","1","2","3","4","5","6","7","8","9",
            "A","B","C","D","E","F",
            "a","b","c","d","e","f");


                    
            // 6 "volle" bytes (Also mit Wert 255 bzw. FF in hexadezimal)
                    
            $data "xFFxFFxFFxFFxFFxFF";
                    
            $hexmac "";

                    
            // Jetzt werden unntige zeichen in der mac-adresse
                    // entfern (also z.B. die bindestriche usw.)
                    
            for ($i 0$i strlen($mac_addr); $i++) {
                        if (!
            in_array(substr($mac_addr$i1), $hexchars)) {
                            
            $mac_addr str_replace(substr($mac_addr$i1), "",$mac_addr);
                        }
                    }

                    for (
            $i 0$i 12$i += 2) {
                        
            $hexmac .= chr(hexdec(substr($mac_addr$i2)));
                    }

                    
            // Hexadresse wird 16mal hintereinandergeschrieben
                    
            for ($i 0$i 16$i++) {
                        
            $data .= $hexmac;
                    }
                    
            fputs($fp$data);
                    
            fclose($fp);
                    echo 
            'MagicPaket wurde verschickt';
                    return 
            true;
                }else {
                    echo 
            "<b>Warnung: $errno</b> $errstr<br>";
                    return 
            false;
                }
            }
            if(isset(
            $_POST['aufwecken']){
                
            wakeup($mac$ip);
            }else{
                
            //Form ausgegen
                
            echo '<form action='.$_SERVER['PHP_SELF'].' method="post">
                <input type="submit" name="aufwecken" />
                </form>'
            ;

            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              hallo,

              erst einmal vielen dank für die schnellen und zahlreichen antworten.
              aber, ich bin immer noch am probieren und bekomme es einfach nicht hin.

              ich bekomme immer die folgenden fehlermeldungen:

              Parse error: syntax error, unexpected ':' in C:\xampp\htdocs\test.php on line 3

              oder

              Warnung: $errno $errstr
              "; return false; } } wakeup($mac, $ip); ?>

              derzeit sieht es so aus: (IP und MAC sind abgeändert)
              ausserdem bin ich mir mit dem udp:// nicht so sicher, da man doch mit dem befehl "//" kommentare hinzufügen kann...

              vielen dank noch einmal im voraus.....

              greets flow




              <?php

              $mac = 00:0F:39:37:EE:AE ; //MAC Adresse
              $ip = udp://00.125.60.46 ; //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)) {
              //erlaubte Zeichen:
              $hexchars = array("0","1","2","3","4","5","6","7","8","9",
              "A","B","C","D","E","F",
              "a","b","c","d","e","f"
              );


              // 6 "volle" bytes (Also mit Wert 255 bzw. FF in hexadezimal)
              $data = "\xFF\xFF\xFF\xFF\xFF\xFF";
              $hexmac = "";

              // Jetzt werden unntige zeichen in der mac-adresse
              // entfern (also z.B. die bindestriche usw.)
              for ($i = 0; $i < strlen($mac_addr); $i++) {
              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)));
              }

              // Hexadresse wird 16mal hintereinandergeschrieben
              for ($i = 0; $i < 16; $i++) {
              $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);

              ?>

              Kommentar


              • #8
                seufz ... abschreiben kannst du auch nicht ... warum hast du die Hochkommata weggelassen

                Kommentar


                • #9
                  sag das doch gleich, jetzt funktioniert es. ;-)

                  vielen dank

                  Kommentar


                  • #10
                    PHP-Code:
                    <?php

                    $mac 
                    00:0F:39:37:EE:AE //MAC Adresse
                    $ip udp://00.125.60.46 ; //oder mit IP z.B.: udp://192.168.0.1

                    function wakeup($mac_addr,$router_addr) {
                    if (
                    $fp fsockopen($router_addr9$errno$errstr4)) {
                    //erlaubte Zeichen:
                    $hexchars = array("0","1","2","3","4","5","6","7","8","9",
                    "A","B","C","D","E","F",
                    "a","b","c","d","e","f"
                    );


                    // 6 "volle" bytes (Also mit Wert 255 bzw. FF in hexadezimal)
                    $data "\xFF\xFF\xFF\xFF\xFF\xFF";
                    $hexmac "";

                    // Jetzt werden unntige zeichen in der mac-adresse
                    // entfern (also z.B. die bindestriche usw.)
                    for ($i 0$i strlen($mac_addr); $i++) {
                    if (!
                    in_array(substr($mac_addr$i1), $hexchars)) {
                    $mac_addr str_replace(substr($mac_addr$i1), "",
                    $mac_addr);
                    }
                    }

                    for (
                    $i 0$i 12$i += 2) {
                    $hexmac .= chr(hexdec(substr($mac_addr$i2)));
                    }

                    // Hexadresse wird 16mal hintereinandergeschrieben
                    for ($i 0$i 16$i++) {
                    $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);

                    ?>
                    sag das doch gleich, jetzt funktioniert es. ;-)
                    Und wieso sollten wir immer wieder darauf aufmerksam machen, dass es in den Regeln steht für Code die PHP-Tags zu verwenden? Dann hättest du gesehen, dass etwas blau dargestellt wird, was eigentlich rot sein sollte

                    Gruss

                    tobi
                    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                    Kommentar

                    Lädt...
                    X