Ankündigung

Einklappen
Keine Ankündigung bisher.

Ping per PHP Script unter Linux

Einklappen

Neue Werbung 2019

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

  • Ping per PHP Script unter Linux

    Hi,

    ich möchte per PHP Script diverse Server in meinem lokalen Netzwerk anpingen, um zu sehen ob diese erreichbar sind.

    Dazu habe ich folgendes Script verwendet:
    PHP-Code:
    $ip "127.0.0.1";

     
    exec("ping -c 1 $ip"$array$return);
    // system("ping -c 1 $ip", $return);
     
      
    if($return) print "$ip ist offline<br/>";
      else print 
    "$ip ist online<br/>"
    Auf meiner Windowsumgebung arbeitet es wie gewünscht. Auf meinem Server (Linux) nicht. Muss ich hier etwas spezielles beachten?

    Funktioniert der Ping überhaupt unter Linux?

  • #2
    schon mal ein var_dump($return) gemacht?
    Zur Not kannst du auch wie folgt ergänzen:

    PHP-Code:
    exec("ping -c 1 $ip > tempfile.txt"$array$return); 
    Dann kannst du dir hinterher mal das Ergebnis des Ping im tempfile.txt ansehen.

    Kommentar


    • #3
      Der Response eines Kommandos ist immer system-/versionsabhängig, die Auswertung entsprechend kompliziert. Ein ping auf der Basis von Sockets könnte ein Ausweg sein. Unter den Kommentaren ist dort auch eine piing-funktion zu finden.

      Kommentar


      • #4
        Sockets habe ich auch schon in Erwägung gezogen. Das Problem, dass ich hier sehe ist, dass immer mindestens ein entsprechender Port offen sein muss?!

        Kommentar


        • #5
          ICMP Requests, dazu zählt auch ping, gehen nicht über Ports.

          Kommentar


          • #6
            [Gelöscht, andere Posts nicht gründlich genug gelesen]

            Kommentar


            • #7
              http://www.purplepixie.org/phpping/

              Kommentar


              • #8
                ppping nutzt raw sockets, welche leider root root zugriff benötigen.

                Kommentar


                • #9
                  hab gerade unter Ubuntu 12.04 folgendes angetestet und es lief

                  PHP-Code:
                  <?php
                  $ip 
                  "google.com";

                  ob_start();
                   
                  //exec("ping -c 1 $ip", $array, $return);
                  system("ping -c 1 $ip"$return);
                  ob_clean();
                    if(
                  $return) print "$ip ist offline<br/>";
                    else print 
                  "$ip ist online<br/>";

                  Kommentar


                  • #10
                    Wenn die ip offline ist, braucht das kommando ping nur sehr lange (einige Sekunden) bis zur Rückmeldung. Hab die im obigen link enthaltene ping-funktion mal unter einen kleinen Linux getestet, lief sofort. Bei der funktion ist ein Timeout einstellbar, liefert bei Erfolg die Zeit in ms. Was will man mehr?

                    Kommentar


                    • #11
                      Mich irritiert, dass in jedem Fall false zurückgegeben wird:
                      127.0.0.1 ist offline
                      //Safemode ist am Server nicht aktiv

                      Kommentar


                      • #12
                        safemode inaktiv heißt nicht das man den system()-Todeslaser mit jeder Munition betreiben kann, auch dafür brauch man entsprechend für den Webserver-User Rechte.

                        Kommentar


                        • #13
                          ich habe einmal alternatic nach einer icmp klasse gesucht und versuche mich jetzt einmal mit Net_Ping.
                          Beim Ausführen des Scripts bekomme ich die Folgende Fehlermeldung:
                          Fatal error: Call to undefined function socket_create() in ...\netping.php on line 14
                          Die Meldung darauf hin zu deuten, dass die socket_create extension nicht korrekt funktioniert.
                          Leider erfolglos, trotz Anpassung der php.ini, manueller Kopie der dll in das ext Verzeichnis (danach natürlich Neustart des Apache).

                          Kommentar


                          • #14
                            Zitat von lape Beitrag anzeigen
                            Die Meldung darauf hin zu deuten, dass die socket_create extension nicht korrekt funktioniert.
                            Nein, die Meldung sagt doch eindeutig, daß die Funktion nicht existiert.
                            PHP-Code:
                            echo function_exists("socket_create") ? "socket_create existiert" "socket_create existiert nicht"

                            Kommentar


                            • #15
                              "nicht korrekt funktioniert" heisst in diesem Fall wohl "wurde nicht geladen". phpinfo() wirds dir verraten.

                              Kommentar

                              Lädt...
                              X