Frank: Alle IPs in subnet erfassen

Hallo,
meine frage:
ich möchte für unser lokales Netzwerk mit php alle IPs mit koresspondierenden Hostnamen erfassen. Geht das mit PHP?
Wir haben ein class-C-netz mit ca. 160 Rechnern die statisch vergeben werden, keine Sau ;-) weiß mehr, welche schon vergeben sind und welche noch frei sind.Es kommt oft zu konflikten, da ping ja auch nicht zuverlässig ist, wenn der Rechner unten ist.
Da wurdeziemlich schlampig gerarbeitet, die Karre muß jetzt mal aus dem Dreck!
Vielen Dank für Anregungen.

  1. Hallo.

    Naja, PHP kann über ausgeschaltete Rechner wohl auch nichts rausfinden. Möglich wäre aber ein Skript mehrmals täglich zu starten und alle im Moment angeschlossene Rechner zu loggen. Nach einer gewissen Zeit (bis eben alle Rechner mal erwischt worden sein müssten) sollte das Ergebnis passen.

    Grüße aus Würzburg
    Julian

    1. Hallo.

      Naja, PHP kann über ausgeschaltete Rechner wohl auch nichts rausfinden. Möglich wäre aber ein Skript mehrmals täglich zu starten und alle im Moment angeschlossene Rechner zu loggen. Nach einer gewissen Zeit (bis eben alle Rechner mal erwischt worden sein müssten) sollte das Ergebnis passen.

      Grüße aus Würzburg
      Julian

      Hi Julian,
      da hast du natürlich Recht, man müßte dann über einen Zeitraum die Pings absetzen und dann in eine Datei/Datenbank schreiben schreiben.
      Allerdings bi ich mir gar nicht sicher ob ich ein ping in ein PHP-Script einbauen kann???
      Ich kann die IP ja mit $ip=getenv("REMOTE_ADDR") protokollieren, wenn die Seite aufgerufen wird. Ich glaube ich kann die Leute aber nicht überzeugen, dass sie das auch machen. In der EDV muß ja alles automatisch "gehn":).
      Vielliech ist PHP ja auch die falsche Wahl?

      1. Hallo.

        Ok, is was dran. Wieviele Scans durchs Netz dürfte es denn Deiner Meinung anch brauchen bis alle Rechner erfasst sind? Wäre es ggf. auch manuell auslösbar oder doch zu oft nötig?
        Manuell gäbs Software zum Scannen, z.B. LANguard. Die Ergebnisse könntest Du jeweils abspeichern und so irgendwann alle zusammenführen.

        Evtl. kannst Du ja auch mal in Archiven (http://www.phpwelt.de, http://www.dynamic-webpages.de) suchen ob's entsprechende Scanner auf PHP-Basis gibt.

        Grüße aus Würzburg
        Julian

        1. Hallo.

          Ok, is was dran. Wieviele Scans durchs Netz dürfte es denn Deiner Meinung anch brauchen bis alle Rechner erfasst sind? Wäre es ggf. auch manuell auslösbar oder doch zu oft nötig?
          Manuell gäbs Software zum Scannen, z.B. LANguard. Die Ergebnisse könntest Du jeweils abspeichern und so irgendwann alle zusammenführen.

          Evtl. kannst Du ja auch mal in Archiven (http://www.phpwelt.de, http://www.dynamic-webpages.de) suchen ob's entsprechende Scanner auf PHP-Basis gibt.

          Grüße aus Würzburg
          Julian

          Hi nochmals,
          habe schon was gebastelt und zusammengesucht:
          <?php
          exec("ping -n 1 192.0.0.1", $lines, $result);
            echo "result = $result<br>";

          echo "Lines<br>\n";
            reset($lines);
            while(list($k, $v) = each($lines)):
              echo "k=$k v=$v<br>\n";
           endwhile;
          ?>
          Aber ich werde jetzt mal nach LANguard gucken.
          THX

          1. exec("ping -n 1 192.0.0.1", $lines, $result);

            Unbrauchbar, nicht jeder Rechner antwortet auf echo_requests.

            Peter Squentz

  2. Aloha!

    meine frage:
    ich möchte für unser lokales Netzwerk mit php alle IPs mit koresspondierenden Hostnamen erfassen. Geht das mit PHP?
    Wir haben ein class-C-netz mit ca. 160 Rechnern die statisch vergeben werden, keine Sau ;-) weiß mehr, welche schon vergeben sind und welche noch frei sind.Es kommt oft zu konflikten, da ping ja auch nicht zuverlässig ist, wenn der Rechner unten ist.
    Da wurdeziemlich schlampig gerarbeitet, die Karre muß jetzt mal aus dem Dreck!

    Ich habe gesehen, dass ein privates Class-C-Netz verwendet wird.

    Das beste wird sein, wenn du einen DHCP-Server aufsetzt und dann in einer nächtlichen Gewaltaktion (naja, muss nicht nächtlich sein) alle angeschlossenen Rechner besuchst und auf DHCP-Konfiguration umstellst. Dann brauchst du zumindest das PHP-Skript nicht mehr.

    Du hast ja ohnehin den Aufwand, unter Umständen bei ziemlich vielen PCs vorbeischauen zu müssen, weil es Konflikte gibt. Also bleibt dir auch dann nicht viel erspart, wenn du den Rechnern jetzt neue statische IPs zuordnest.

    DHCP kann auch statische IPs "dynamisch" vergeben, wenn die Mac-Adresse bekannt ist. Auf diese Weise habe ich hier in der Firma immer meine feste IP-Adresse, die ich auch brauche, weil ein Webserver zum Entwickeln drauf läuft und von überall immer erreichbar sein muss.

    Für ein Class-C-Netzwerk mit 160 Rechnern lohnt es sich auf jeden Fall, DHCP zu verwenden. Das lohnt sich IMO schon ab 5 Rechnern. Strategie: Stelle die IP-Adressen um. Statt 192.168.0.0/24 benutze für die umgestellten (und dynamisch zugewiesenen) Rechner ein anderes Netz wie z.B. 192.168.1.0/24. Stelle die zentralen Server, Gateways und Router zuerst um (die dürfen meinetwegen auch echte statische IPs kriegen, da sie in der Regel fernwartbar sind und man sie so ändern könnte). Stelle dann alle Clients auf DHCP um. Die Benutzer der Rechner, die übersehen wurden, weil sie nur alle Jubeljahre benutzt werden, werden sich schon melden, wenn sie nicht mehr ins Netz kommen. ;)

    - Sven Rautenberg