Wake on LAN mit Hilfe von PHP bei Server mit mehreren NICs

Dieses Thema im Forum "Ruby, php, Perl, Python ..." wurde erstellt von HBNuke, 01.08.2007.

  1. HBNuke

    HBNuke Grünschnabel

    Dabei seit:
    23.05.2007
    Beiträge:
    3
    Zustimmungen:
    0
    Hallo zusammen,

    ich habe schätzungsweise nun eine Knalleraufgabe und zwar besitze ich einen Server mit mehreren Netzwerkkarten, die an unterschiedlichen Subnetzen angeschlossen sind. Aufgabe ist es nun mit einer Weblösung (sprich mit PHP) den Server dazu zu benutzen, dass er bestimmte Rechner per WOL (Wake on LAN) aufwecken kann. Hauptfrage ist für mich natürlich, wie ich befehlen kann, wann welche Netzwerkkarte benutzt werden soll. Habe einmal ETH1, die im Netz 10.115.25.0 (SM 255.255.255.0) angeschlossen ist und einmal BOND0 (ETH2 & ETH4), die im Netz 10.115.26.0 (SM 255.255.255.0) angeschlossen ist. (ETH1 hat zur Zeit keine IP aktiviert, weil sonst Linux immer Routing betreibt. Die ETH1 soll ausschließlich für WOL des Netzes 10.115.25.0 benutzt werden.)

    Mein Code mit dem sich leider nur alle Computer aus dem Netz 10.115.26.0 wecken lassen, aber nicht aus dem Netz 10.115.25.0 (außer wenn die IP des Computers noch im ARP-Cache des Routers steht) lautet:

    PHP:
    <?php
    // IP und MAC werden über eine Eingabemaske im HTML-Teil übergeben
    if (($_POST['WakeUp'] == "Wake Up!") && ($_POST['IP'] != "") && ($_POST['MAC'] != ""))
     {

     function 
    WakeOnLan($addr$mac)
      {
       
    $addr_byte explode(':'$mac);
       
    $hw_addr '';

       for (
    $a=0$a 6$a++) $hw_addr .= chr(hexdec($addr_byte[$a]));

       
    $msg chr(255).chr(255).chr(255).chr(255).chr(255).chr(255);

       for (
    $a 1$a <= 16$a++)    $msg .= $hw_addr;

       
    // send it to the broadcast address using UDP
       // SQL_BROADCAST option isn't help!!
       
    $s socket_create(AF_INETSOCK_DGRAMSOL_UDP);
       if (
    $s == false)
        {
         echo 
    "Error creating socket!\n";
         echo 
    "Error code is '".socket_last_error($s)."' - " socket_strerror(socket_last_error($s));
        }
       else
        {
         
    // setting a broadcast option to socket:
         
    $opt_ret =  socket_set_option($s16TRUE);
         if(
    $opt_ret 0)
          {
           echo 
    "setsockopt() failed, error: " strerror($opt_ret) . "\n";
          }
         
    $e socket_sendto($s$msgstrlen($msg), 0$addr2050);
         
    socket_close($s);
         echo 
    "Magic Packet sent (".$e.") to ".$addr.", MAC=".$mac;
        }
      }

    //if you have switch or other routing devices in LAN, sendign to
    // the local IP isn't helps! you need send to the broadcast address like this:

    WakeOnLan($_POST['IP'], $_POST['MAC']);


     }
    ?>
    Vielen Dank für eure Hilfe!
    HBNuke

    P.S.: Wenn es die Möglichkeit gibt einfach einen Broadcast mit dem "Magic Packet" über alle Netzwerkkarten zu verschicken, hätte ich schon die ersehnte Lösung - Aber wie? :(
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

Wake on LAN mit Hilfe von PHP bei Server mit mehreren NICs

Die Seite wird geladen...

Wake on LAN mit Hilfe von PHP bei Server mit mehreren NICs - Ähnliche Themen

  1. »Thea: The Awakening« - Kostenlos für Linux

    »Thea: The Awakening« - Kostenlos für Linux: Die Entwickler des rundenbasierten Strategietitels »Thea: The Awakening« haben das Spiel allen Interessenten unter Linux kostenlos zur Verfügung...
  2. wake on Wlan

    wake on Wlan: HI Leute ! Ich bin mal wieder am basteln und suche nach einer Loesung meinen Server nur dann von der ferne ( aus dem Internet ) anzuschalten wen...
  3. WakeOnLAN über ThinClients (Einer pro Subnetz)

    WakeOnLAN über ThinClients (Einer pro Subnetz): Hallo, ich benötige mal eure Hilfe und zwar geht es darum per WakeOnLAN Rechner zu wecken. Eigentlich keine große Sache. Nur wurde uns der...
  4. Wake-On-Lan Fragen

    Wake-On-Lan Fragen: Hi, ich habe vor mir einen Linux-Server für den privaten Bereich zuzulegen. Jetzt wollte ich fragen wie folgende Situtationen elegant lösbar...
  5. Wake-on-LAN funktioniert nicht.

    Wake-on-LAN funktioniert nicht.: Hallo, Ich habe hier ein Mainboard von Asus (A7V880), welches laut Hersteller Wake-On-LAN unterstützt. Allerdings bekomme ich es weder mit meiner...