Ping an viele Hosts senden

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

  • Ping an viele Hosts senden

    Hallo Community,

    ich schreibe im Moment ein PHP-Skript um die Rechner in unserem Netzwerk bequem per Wake On Lan einschalten zu können. Das einschalten klappt einwandfrei. Nun möchte ich neben dem Namen eines jeden Rechners noch anzeigen lassen ob der PC ein- bzw. ausgeschalten ist.

    im Moment habe ich dafür folgenden Code:

    Code:
    <?php
    $file =  fsockopen('udp://'.$Rechnername.'', 80, $errno,$errstr, 0.01);
    if (!$file)
     {
      echo'<img src="pingstatusoffline.png" width="15" height="15" alt="offline">';
     }
    else
     {
      echo'<img src="pingstatusonline.png" width="15" height="15" alt="online">';
     }
    fclose($file);
    ?>
    Dieser befindet sich in einer Schleife und wird für jeden der ca. 400 Hosts ausgeführt.
    Das Problem ist, dass die Abfragen sehr lange dauern und währenddessen die restliche Seite noch nicht dargestellt wird.

    Das Skript sollte aber so sein, dass die Übersichtstabelle sofort dargestellt wird und danach der http-Server versucht alle Hosts anzupingen und enstprechend der Rückmeldung online oder offline anzeigt.
    Die "Mainpage" und die einzelnen Pings müssten also unabhängig voneinander laufen.
    Ich hab leider keine Idee, wie ich das umsetzen könnte.

    Hat jemand eine Idee?

    Danke schonmal
    Gruß Max
    Zuletzt geändert von Myxomatosis; 19.01.2010, 10:39.

  • #2
    Lade den Status per AJAX nach oder benutze ein Java-Applett, um direkt aus dem Client zu pingen.

    Kommentar


    • #3
      Hallo,

      du kannst auch für jeden Host den Status direkt im Bild abrufen, z. B.
      HTML-Code:
      <img src="status.php?hostname=..." alt="Status für Host ..." />
      Dann kümmert sich der Browser darum, die Bilder nachzuladen. Die status.php übernimmt dabei erst die eigentliche Überprüfung und gibt eins der beiden Bilder zurück.

      Gruß,

      Amica
      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
      Super, danke!
      [/COLOR]

      Kommentar


      • #4
        Zitat von AmicaNoctis Beitrag anzeigen
        Hallo,

        du kannst auch für jeden Host den Status direkt im Bild abrufen, z. B.
        HTML-Code:
        <img src="status.php?hostname=..." alt="Status für Host ..." />
        Dann kümmert sich der Browser darum, die Bilder nachzuladen. Die status.php übernimmt dabei erst die eigentliche Überprüfung und gibt eins der beiden Bilder zurück.

        Gruß,

        Amica

        Danke, genau nach sowas habe ich gesucht!
        Aber wie muss die status.php aussehen, dass ich ein Bild zurückbekomme? Im moment habe ich nur ein rotes Kreuz....

        Code:
        <?php
        $file =  fsockopen('udp://'.$_GET['hostname'].'', 80, $errno,$errstr, 0.05);
        if (!$file)
         {
          echo'<img src="pingstatusoffline.png" width="15" height="15" alt="offline">';
         }
        else
         {
          echo'<img src="pingstatusonline.png" width="15" height="15" alt="online">';
         }
        fclose($file);
        ?>

        Kommentar


        • #5
          Zitat von Myxomatosis Beitrag anzeigen
          Aber wie muss die status.php aussehen, dass ich ein Bild zurückbekomme? Im moment habe ich nur ein rotes Kreuz....
          Momentan gibst du ja auch HTML-Code aus. Du musst dann natürlich die Bilddaten ausgeben (readfile) und vorher einen entsprechenden Header setzen:
          PHP-Code:
          header("Content-Type: image/png"); 
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #6
            Zitat von AmicaNoctis Beitrag anzeigen
            Momentan gibst du ja auch HTML-Code aus. Du musst dann natürlich die Bilddaten ausgeben (readfile) und vorher einen entsprechenden Header setzen:
            PHP-Code:
            header("Content-Type: image/png"); 

            Super, funktioniert! Vielen Dank!

            Kommentar

            Lädt...
            X