IP bis zum dritten (.)Punkt kürzen

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

  • IP bis zum dritten (.)Punkt kürzen

    Hallo liebe Leute

    spamm problem...



    Ich möchte auf meinem Gästebuch (fs-piregg.at) folgende IP-Adressen sperren:

    194.67.32.24
    194.67.32.97
    194.67.32.13
    80.58.205.41
    80.58.205.55
    usw...

    Da sich die letzten zwei IP-Zahlen immer ändern, möchte ich gleich alle IP-Adressen beginnend mit zb: 194.67.32 sperren.

    Die zu sperrenden IP-Adressen habe ich vorerst manuell "geschnitten" - also ohne die Zahlen nach dem letzten Punkt in die Datenbank eingetragen.
    zb. so:
    194.67.32
    194.67.32
    194.67.32
    80.58.205
    80.58.205
    usw...



    Wie kann ich die aktuelle IP-Adresse des Spammers ($_SERVER['REMOTE_ADDR']) jetzt so verwandeln, dass ich nur noch eine IP-Adresse mit den Zeichen bis zum dritten punkt bekomme? (Damit ich sie später mit den datenbankeinträgen vergleichen kann)

    Also: die IP 194.67.32.24 ($_SERVER['REMOTE_ADDR']) möchte ich so: 194.67.32 in einer Variable stehen haben.

    Wie mache ich das?

    danke


    hier noch der code, so wie ich mir das gedacht habe:

    EDIT:
    Der ist für die Frage ja wohl sowas von unnötig ...
    Wegen Irrelevanz und Überbreite entfernt.
    wahsaga


    Zuletzt geändert von wahsaga; 17.09.2006, 17:02.

  • #2
    Wie wärs, wenn du es erstmal selbst versuchst?
    strrpos() liefert dir die Position des letzten Punktes,
    substr() kann die IP bis auf diese Position verkürzen,
    reguläre Ausdrücke wären auch eine Möglichkeit,

    aber eigentlich brauchst du nur strpos() === 0 testen. Das geht auch in SQL.

    Kommentar


    • #3
      Danke Herr onemorenerd!

      Mit strpos() kann ich es leider noch nicht nachvollziehen,
      hab es aber mit strrpos() und substr() hinbekommen.

      besten Dank!

      Kommentar


      • #4
        PHP-Code:
        strpos('194.67.32.24','194.67.32.'

        Kommentar


        • #5
          Mir ist noch was eingefallen: Speichere doch gleich 'a.b.c.%' in der DB und lass dir dann von MySQL mit einem SELECT ... WHERE '$_SERVER['REMOTE_ADDR']' LIKE ip_spalte sagen, ob die IP zulässig ist oder nicht.
          Dürfte schneller sein als alle a.b.c's zu SELECTen und in einer Schleife mit strpos() zu testen.

          Kommentar


          • #6
            getestet?

            BTW:
            wenn es immer xxx.xxx.xxx.*** geblockt wird, einfach bis zum 3. punkt substr()en und dann SELECT und dann fertig. Aber das hatten wir ja schon.

            Kommentar

            Lädt...
            X