Olli: Durch Komma getrennte IP-Liste formatieren

Hi,

ich würde gerne per .htaccess-Datei Spambots von meiner Seite aussperren und habe mir zu diesem Zweck auch schon recht umfangreiche IP-Listen besorgt. Allerdings in der gänzlich falschen Formatierung :-/
Zum einen habe ich eine Liste mit knapp 1000 IPs im folgenden Format:

159.148.11.5, 194.109.22.147, 82.76.63.69, 217.91.106.44, 82.233.18.192, ...

Zum anderen in folgendem:

200.238.102.170
74.226.218.208
200.204.76.105
80.96.191.250
216.32.81.18
...

Da ich ja scheinbar vor jede Zeile ein "deny from" schreiben muss, wäre es "etwas" viel Arbeit, das alles so umzuformatieren, dass ich jede IP in einer Zeile mit 'nem "deny from" davor habe.
Welche Lösung/Welches Programm könnte da Abhilfe schaffen?

Gruß,
Olli

  1. Hi,

    Welche Lösung/Welches Programm könnte da Abhilfe schaffen?

    ein Texteditor, der Suchen & Ersetzen beherrscht.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hello out there!

      Welche Lösung/Welches Programm könnte da Abhilfe schaffen?

      ein Texteditor, der Suchen & Ersetzen

      ... mit regulären Ausdrücken ...

      beherrscht.

      See ya up the road,
      Gunnar

      --
      „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
      1. hi,

        ein Texteditor, der Suchen & Ersetzen

        ... mit regulären Ausdrücken ...

        Hast du einen Kanonverleih für Leute mit Spatzenproblem aufgemacht?

        Wozu reguläre Ausdrücke - wenn der "Trenner" zwischen den IP-Adressen einmal Komma,Leerzeichen, und das andere Mal ein Zeilenumbruch ist?

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Die verschiedenen "Trenner" sind ja egal, die IP-Liste mit den Zeilenumbrüchen kann ich ja einfach aus dem Textdokument rauskopieren und später eigenständig bearbeiten :)

        2. Hello out there!

          Wozu reguläre Ausdrücke - wenn der "Trenner" zwischen den IP-Adressen einmal Komma,Leerzeichen, und das andere Mal ein Zeilenumbruch ist?

          Wie kommst du ohne reguläre Ausdrücke an Zeilenumbrüche ran? Und an den Zeilenanfang?

          See ya up the road,
          Gunnar

          --
          „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
          1. Hallo Gunnar!

            Wie kommst du ohne reguläre Ausdrücke an Zeilenumbrüche ran? Und an den Zeilenanfang?

            Mit EditPad.

            Viele Grüße aus Frankfurt/Main,
            Patrick

            --

            _ - jenseits vom delirium - _
            <hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash>
            Nichts ist unmöglich? Doch!
          2. Hallo Gunnar.

            Wozu reguläre Ausdrücke - wenn der "Trenner" zwischen den IP-Adressen einmal Komma,Leerzeichen, und das andere Mal ein Zeilenumbruch ist?

            Wie kommst du ohne reguläre Ausdrücke an Zeilenumbrüche ran? Und an den Zeilenanfang?

            Beides auf gleiche Art und Weise: per „\n“.

            Einen schönen Freitag noch.

            Gruß, Mathias

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

              Beides auf gleiche Art und Weise: per „\n“.

              In welchem Editor?

              Viele Grüße aus Frankfurt/Main,
              Patrick

              --

              _ - jenseits vom delirium - _
              <hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash>
              Nichts ist unmöglich? Doch!
              1. Hallo Patrick.

                Beides auf gleiche Art und Weise: per „\n“.

                In welchem Editor?

                Unter Windows in Notepad2 zum Beispiel. Hierzu muss im Suchen-Und-Ersetzen-Dialog nur die Checkbox „Transform backslashes“ aktiviert werden.

                Einen schönen Freitag noch.

                Gruß, Mathias

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

                  Unter Windows in Notepad2 zum Beispiel. Hierzu muss im Suchen-Und-Ersetzen-Dialog nur die Checkbox „Transform backslashes“ aktiviert werden.

                  Dann erweitere ich meine Anmerkung zu "... mit regulären Ausdrücken bzw. transform backslashes ..." :-)

                  See ya up the road,
                  Gunnar

                  --
                  „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
                  1. gudn tach!

                    Dann erweitere ich meine Anmerkung zu "... mit regulären Ausdrücken bzw. transform backslashes ..." :-)

                    in word braucht man dafuer kein backslash. ;-)

                    es gibt aber auch in manchen texteditoren die moeglichkeit via mehrzeiligem such-textfeld einfach zeilenumbrueche ueber die enter-taste einzugeben.

                    prost
                    seth

                2. Hi!

                  Unter Windows in Notepad2 zum Beispiel. Hierzu muss im Suchen-Und-Ersetzen-Dialog nur die Checkbox „Transform backslashes“ aktiviert werden.

                  Für Windows gibt es auch den auf Scintilla basierenden Notepad++.
                  Das wäre mein Favorit.
                  (Wir brauchen ja nicht darüber zu diskutieren, was notepad.exe für ein toller Editor ist...)

                  Tja und ansonsten kämen, für so eine Aufgabe, natürlich auch die GNU TextUtils, sed und/oder vi(m) in Frage.
                  Die Dinger gibt es nicht nur für Unix/Linux, sondern auch für Windows.

                  Ohne diese Tools, kann ich unter Windows nicht anständig arbeiten.
                  Die Dinger sollten IMHO standardmäßig zu jedem Betriebssystem gehören.
                  Naja, bei jedem guten sind sie ja auch mit dabei... ;o)

                  Und alternativ dazu könnte man den ganzen Krams auch mit Hilfe von Cygwin unter Windows nutzen.

                  Schöner Gruß,
                  rob

            2. Hello out there!

              Wie kommst du ohne reguläre Ausdrücke an Zeilenumbrüche ran? Und an den Zeilenanfang?

              Beides auf gleiche Art und Weise: per „\n“.

              Und das wird nicht als Zeichenkette aus '' und 'n' interpretiert, wenn der Editor nicht reguläre Ausdrücke verwendet?

              See ya up the road,
              Gunnar

              --
              „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
              1. Hallo Gunnar.

                Wie kommst du ohne reguläre Ausdrücke an Zeilenumbrüche ran? Und an den Zeilenanfang?

                Beides auf gleiche Art und Weise: per „\n“.

                Und das wird nicht als Zeichenkette aus '' und 'n' interpretiert, wenn der Editor nicht reguläre Ausdrücke verwendet?

                Kommt auf den Editor an.

                Einen schönen Freitag noch.

                Gruß, Mathias

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

                Beides auf gleiche Art und Weise: per „\n“.

                Und das wird nicht als Zeichenkette aus '' und 'n' interpretiert, wenn der Editor nicht reguläre Ausdrücke verwendet?

                Das hängt selbstverständlich vom Editor ab. In Vim müsstest du aber das \ maskieren, wenn du nach \n und nicht nach einem Newline suchen willst.

                Schöne Grüße,

                Johannes

      2. Okay, danke erstmal für eure schnellen Antworten, aber viel weitergeholfen ist mir damit leider nicht, da ich nicht recht verstehe, was nun zu tun ist :)
        Ich würde ja gerne für die erste Formatierung mit den Kommatas einfach jedes Komma durch einen Zeilenumbruch ersetzen, aber zumindest das Windows-eigene "Suchen und Ersetzen" beherrscht doch sowas nicht, oder? Und wenn, müsste ich immer noch in jede neue Zeile ein "deny from" basteln - aber leider weiß ich wirklich nicht wie.
        Ich hoffe, ihr könnt einem Laien noch ein bisschen mehr aus der Patsche helfen :)

        1. hi,

          Ich würde ja gerne für die erste Formatierung mit den Kommatas einfach jedes Komma durch einen Zeilenumbruch ersetzen, aber zumindest das Windows-eigene "Suchen und Ersetzen" beherrscht doch sowas nicht, oder?

          Schau nach, dann weisst du's.
          Und wenn nicht - dann besorg dir einen anderen Texteditor, einen der diesen Namen auch verdient.

          Und wenn, müsste ich immer noch in jede neue Zeile ein "deny from" basteln - aber leider weiß ich wirklich nicht wie.

          In dem du Komma nicht einfach durch Zeilenumbruch, sondern durch Zeilenumbruch,DENY ersetzt - dann hast du am Anfang jeder Zeile aus der ersten schon mal DENY stehen. Und vor die erste bekommst du es mit etwas Mühe vielleicht manuell eingefügt.

          gruß,
          wahsaga

          --
          /voodoo.css:
          #GeorgeWBush { position:absolute; bottom:-6ft; }
        2. Hi

          Ich würde ja gerne für die erste Formatierung mit den Kommatas einfach jedes Komma durch einen Zeilenumbruch ersetzen, aber zumindest das Windows-eigene "Suchen und Ersetzen" beherrscht doch sowas nicht, oder? Und wenn, müsste ich immer noch in jede neue Zeile ein "deny from" basteln - aber leider weiß ich wirklich nicht wie.

          Benutze doch einfach das, was da ist:

          1. Ersetze im Notepad alle "," durch "<br>deny from".
            2. Speichere das Ergebnis als .html Datei
            3. Öffne die HTML-Datei in einem Browser.
            4. Markiere und kopiere alles und füge es wieder im Notepad ein
            5. Füge für die erste IP noch ein "deny from " hinzu
            6. Fertig

          Gruß

          1. Klasse, hat funktioniert. Vielen Dank für diese simple Idee, auf die ich aber nicht gekommen wäre :)

        3. gudn tach!

          Ich würde ja gerne für die erste Formatierung mit den Kommatas einfach jedes Komma durch einen Zeilenumbruch ersetzen, aber zumindest das Windows-eigene "Suchen und Ersetzen" beherrscht doch sowas nicht, oder?

          hast du word? word kann sowas mit (ctrl-h, iirc).
          falls nicht. lade dir irgendeinen texteditor runter. muss ja nicht vim sein, wenn es wirklich nur um dieses eine problem geht, da vim eine sehr gewoehnungsbeduerftige bedienung hat, aber vim ist halt toll.

          prost
          seth

      3. gudn tach!

        Welche Lösung/Welches Programm könnte da Abhilfe schaffen?

        ein Texteditor, der Suchen & Ersetzen

        ... mit regulären Ausdrücken ...

        beherrscht.

        z.b. vim!

        oder was anderes, was suchen & ersetzen per regexp beherrscht, z.b. perl.

        aber wahsaga hat wohl recht. gibt's denn fuer zusammenhaengende ip-adress-bereiche beim apache moeglichkeiten masken anzugeben?

        prost
        seth

  2. hi,

    ich würde gerne per .htaccess-Datei Spambots von meiner Seite aussperren und habe mir zu diesem Zweck auch schon recht umfangreiche IP-Listen besorgt.

    Für die allgemeine Performance aber vermutlich nicht allzu günstig, wenn der Apache bei Jedem Request neterlange Listen von IP-Adressen durchwühlen muss.

    Allerdings in der gänzlich falschen Formatierung :-/

    Halbwegs vernünftige Texteditoren beherrschen "Suchen/Ersetzen".

    Da ich ja scheinbar vor jede Zeile ein "deny from" schreiben muss

    Nein, musst du nicht.
    Hinter ein DENY tausende von IP-Adressen zu klatschen, wäre aber vermutlich auch nicht allzu günstig.

    Tu' deinem Apachen lieber den Gefallen, ihn damit nicht zu erschlagen - und fange Spam anders ab, scriptseitig. Ansätze dazu wurden schon oft hier diskutiert.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. ich würde gerne per .htaccess-Datei Spambots von meiner Seite aussperren und habe mir zu diesem Zweck auch schon recht umfangreiche IP-Listen besorgt.

      Für die allgemeine Performance aber vermutlich nicht allzu günstig, wenn der Apache bei Jedem Request neterlange Listen von IP-Adressen durchwühlen muss.

      Mal unabhängig von der Performance, ist dieses Vorgehen zumindest ansatzweise erfolgreich oder vielleicht Mega-Murks?

      1. hi,

        Mal unabhängig von der Performance, ist dieses Vorgehen zumindest ansatzweise erfolgreich oder vielleicht Mega-Murks?

        Ich denke kaum, dass das besonders erfolgreich sein wird.

        Davon, von festen IPs (eigene Server) aus ihren Spam zu verschicken, sind die erfolgreichen Aktuere dieses Business doch längst abgerückt - gerade weil es sich darüber so leicht filtern lässt.

        Der absolut überwiegende Teil des Spams, egal ob E-Mail- oder Foren-/Weblog-/Gästebuch-Spam, wird heutzutage über "ganz normale", per Dial-Up-Connection mit dynamisch vergebenen IPs mit dem Internet verbundene Rechner versandt - die über kleine Trojaner zu Botnetzen zusammengeschlossen und ferngesteuert werden.
        Wollte man solche IPs dann auch noch in Blocklisten aufnehmen, so würde man kurzzeitig Nutzer, die sich nichts ausser vielleicht ein wenig Naivität im Umgang mit ihrem Rechner zu Schulden haben kommen lassen, blockieren - und danach dann gänzlich unbeteiligte Nutzer, die die betreffende IP-Adresse als nächstes dynamisch zugeteilt bekommen haben.

        Klar könnte man auch auf die Idee verfallen, ganze IP-Blöcke - die in für massiven Spam-Versand "berüchtigten" Ländern wie bspw. China "beheimatet" sind [1], in Sippenhaft zu nehmen, und komplett auszuschliessen. Aber wenn ich 99 Spam-Requests abwehre, und daneben auch nur einen, der etwas Sinnvolles beizutragen hätte, wäre mir das schon zu schlecht. Dann nehme ich lieber in Kauf, den Spam anderweitig ausfiltern und ggf. kontrollieren zu müssen - zumal recht effektive Möglichkeiten dazu heute ja auch existieren (ich verweise hier, was Webformular-Spam angeht, gerne mal wieder auf Akismet).

        [1] Vielleicht ist jemand jetzt geneigt zu sagen, was interessieren mich die Chinesen, die können mit meinen Inhalten ja sowieso nix anfangen. Aber m.W. führen die USA die Spam-Liste aktuell sogar noch vor den Chinesen an, also müsste man die auch aussperren ...

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Hallo,

          [1] Vielleicht ist jemand jetzt geneigt zu sagen, was interessieren mich die Chinesen, die können mit meinen Inhalten ja sowieso nix anfangen. Aber m.W. führen die USA die Spam-Liste aktuell sogar noch vor den Chinesen an, also müsste man die auch aussperren ...

          das überrascht mich jetzt aber - was _mich_ an SPAM erreicht, kommt überwiegend aus China, Rumänien, Polen und Brasilien (ungefähr in der Rangfolge).

          So long,
           Martin

          --
          Ich wollt', ich wär ein Teppich. Dann könnte ich morgens liegenbleiben.
  3. Lange Listen???

    Das ist konzeptionell falsch

    Definiere positiv was du willst
    Sonst hast du Spam verdient.