IP und nicht den Hostnamen anpingen

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

  • IP und nicht den Hostnamen anpingen

    Tja, nachdem hier schon oft und ausführlich zu dem Thema gepostet wurde, habe ich dennoch keine Lösung gefunden, wie ich das Resultat eines Pings an eine IP-Adresse (nicht an einen Hostnamen) dahingehend auswerten kann, ob die IP erreichbar ist oder nicht .

    Ein Script a la
    PHP-Code:
    $online=exec("ping $ip -c 1");  // Parameter -c für UNIX system, -n  für Windows
        
    if (eregi("unbekannter host"$online) || eregi("unknown host"$online))
        { 
            print 
    "Server ist leider nicht erreichbar!!<br>\n"
        }
         else 
        { 
            print 
    "Server erreichbar";

    kann nicht funktionieren, da $online im Falle einer angepingten IP ja nur ein

    Minimum = 0ms, Maximum = 0ms, Mittelwert = 0ms

    enthält, obwohl die IP gar nicht zu erreichen war. So ist es zumindest unter Windows.

    Tja, ich werde jetzt meine Forschungen unter Linux fortsetzen... Vielleicht hat ja aber auch hier noch jemand eine Idee.

    Gruß

    Christian S. aka v8328

  • #2
    Ich habe das Problem so umgegangen in dem ich den Zurückgegebenen String in seine Einzelteile zerlegt habe. An eine bestimmten Array Position findest du dann den entsprechenden Wert der immer größer 0 sein muß.

    Problem das Script ist nicht Portierbar da verschiedene Betriebssysteme verschiedene Ausgaben des Pings zurückliefern. Auf meinem NT Server läuft es erste Sahne ...

    Kommentar


    • #3
      Hey, Danke! So in der Art hat´mir das auch vorgeschwebt.

      Nach zwei Pizzen und ewiger Sucher- und Probiererei mein Ergebnis:

      exec() - Taugt nix, da zumindest im Win98SE der zurückgegebene String nur die letzte Zeile der PING-Ausgabe ist.

      system() - Taugt auch nix, da die Funktion live die gesamte PING-Ausgabe auf dem Bildschirm mitmeißelt.

      bleibt noch

      shell_exec() - taugt zumindest in meinem WAMP, liefert die komplette Stringausgabe in eine Variable, die ich dann z.B. nach "100% Verlust" oder ähnlichem durchsuchen kann. Das ist schon mal gut.

      Warum ich das brauche? Nun, ich will vor einem Nessusscan einfach noch einmal via Webinterface checken können, ob jeder in meinem Subnetz auch brav den Rechner an hat - und ob sich vielleicht auch jemand "schwarz" mit dem privaten Notebook eingeklinkt hat.

      Nur tut sich jetzt schon die nächste Frage auf: 255 IPs durchzuklingeln braucht Zeit - die mir der Server natürllich nicht gibt. Und jetzt muss ich etwas finden, dass mir das Script derartig splittet, dass der Server jeweils nach zehn bis zwanzig Pings "denkt", ich hab ein neues Script gestartet. Aber die Frage poste ich morgen. (Wo ist der Gähn-Smiley?!)

      Gruß und gute Nacht

      Christian S. aka v8328

      Kommentar


      • #4
        Such doch einfach ob 100% Packet loss oder 100% verlust in den Antwortzeilen vorhanden ist ...
        carpe noctem

        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

        Kommentar


        • #5
          vielleicht kannst ja die netzwerkkarte direkt ansprechen und nen broadcast simulieren .. wer antwortet ist im netzwerk

          jetzt müsste man nur noch wissen wo suchen .. viel spaß dabei
          mfg,
          [color=#0080c0]Coragon[/color]

          Kommentar

          Lädt...
          X