werner: IP Adressen in einem Dokument auslesen

Hi und guten Tag,

ich hab ein html Dokument in dem an die 100 IP Adressen
im Text vorkommen, die ich im Moment aber per Hand auslese und separat speicher.

Gibt es eine Möglichkeit via PHP das Dokument einzulesen
und an Hand eine Suchstrings die IPs automatisch auszulesen
und in eine separate Text Datei zu speichern?

Vielen Dank für Eure Tipps
Werner

  1. Hallo werner.

    Gibt es eine Möglichkeit via PHP das Dokument einzulesen
    und an Hand eine Suchstrings die IPs automatisch auszulesen
    und in eine separate Text Datei zu speichern?

    Ja, unter Verwendung von preg_match_all. Ein mögliches Suchmuster:

    /([12]?[0-5]?[0-5]\.[12]?[0-5]?[0-5]\.[12]?[0-5]?[0-5]\.[12]?[0-5]?[0-5])/

    Verbesserungswürdig aber ausreichend.

    Einen schönen Montag noch.

    Gruß, Mathias

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules
    1. Hallo werner.

      Gibt es eine Möglichkeit via PHP das Dokument einzulesen
      und an Hand eine Suchstrings die IPs automatisch auszulesen
      und in eine separate Text Datei zu speichern?

      Ja, unter Verwendung von preg_match_all. Ein mögliches Suchmuster:

      /([12]?[0-5]?[0-5]\.[12]?[0-5]?[0-5]\.[12]?[0-5]?[0-5]\.[12]?[0-5]?[0-5])/

      Verbesserungswürdig aber ausreichend.

      Einen schönen Montag noch.

      Gruß, Mathias

      Hallo Mathias,

      Danke für den Tipp
      jedoch bin ich leider nicht der PHP Profi um das umsetzen zu können.

      Wie müsste ich preg-match-all einsetzen um:
      Die IPs aus IPimText.html auszulesen und nach IP.txt zu exportieren

      Danke für deine Hilfe
      Werner

      1. Hallo Werner,

        Danke für den Tipp
        jedoch bin ich leider nicht der PHP Profi um das umsetzen zu können.

        Wie müsste ich preg-match-all einsetzen um:
        Die IPs aus IPimText.html auszulesen und nach IP.txt zu exportieren

        Also echt - die größte Arbeit hat dir Mathias doch bereits abgenommen.
        Wie wäre es da mit ein wenig Eigeninitiative?
        Dafür braucht man kein PHP Profi zu sein.

        Grüße

        Marc Reichelt || http://www.marcreichelt.de/

        --
        Linux is like a wigwam - no windows, no gates and an Apache inside!
        Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
        1. Hallo Werner,

          Danke für den Tipp
          jedoch bin ich leider nicht der PHP Profi um das umsetzen zu können.

          Wie müsste ich preg-match-all einsetzen um:
          Die IPs aus IPimText.html auszulesen und nach IP.txt zu exportieren

          Also echt - die größte Arbeit hat dir Mathias doch bereits abgenommen.
          Wie wäre es da mit ein wenig Eigeninitiative?
          Dafür braucht man kein PHP Profi zu sein.

          Grüße

          Marc Reichelt || http://www.marcreichelt.de/

          »»

          Hallo Marc,

          natürlich hab ich versucht das umzusetzten
          Da aber nur Müll dabei rauskam habe ich halt nochmal nachgefragt

          Nachdem ich mir aber nochmals Mathias regex angeschaut habe
          /([12]?[0-5]?[0-5].[12]?[0-5]?[0-5].[12]?[0-5]?[0-5].[12]?[0-5]?[0-5])/

          wurde mir der Fehler klar
          IPs gehen nicht von 0-5 sondern von 0-9 :-)

          Hier die Lösung:

          <?php
          $page = @implode('', file("IPimText.html"));

          $anzahl=preg_match_all("/([12]?[0-9]?[0-9].[12]?[0-9]?[0-9].[12]?[0-9]?[0-9].[12]?[0-9]?[0-9])/", $page, $out);
          echo "Es wurden $anzahl IPs gefunden:<br><br>";
          echo implode("<br>",$out[0]);
          exit;

          Nochmals Danke für die Hilfestellung
          Werner

          1. Hallo Werner.

            Nachdem ich mir aber nochmals Mathias regex angeschaut habe
            /([12]?[0-5]?[0-5].[12]?[0-5]?[0-5].[12]?[0-5]?[0-5].[12]?[0-5]?[0-5])/

            wurde mir der Fehler klar
            IPs gehen nicht von 0-5 sondern von 0-9 :-)

            Fast. Mit obigem Muster wollte ich abfangen, dass eine IP-Adresse über 255.255.255.255 akzeptiert wird. Dass ich damit aber auch reguläre Adressen ausschließe, habe ich übersehen.

            Hier die Lösung:

            […]
            $anzahl=preg_match_all("/([12]?[0-9]?[0-9].[12]?[0-9]?[0-9].[12]?[0-9]?[0-9].[12]?[0-9]?[0-9])/", $page, $out);
            […]

            Ja, ist die für diesen Fall wohl beste Lösung; alles weitere würde das Suchmuster nur deutlich verkomplizieren.

            Einen schönen Montag noch.

            Gruß, Mathias

            --
            ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
            debian/rules