Patrick Andrieu: Bekloppte User Agents zuordnen (RegExp)

Beitrag lesen

Hallo Engin!

Arghh, hatte das desktop/ vor den Dateinamen vergessen, wobei es doch auch bei

Perl irrt sich nie. Der User tut's ;)

absoluten pfaden hätte gehen müssen!?

Ach, _das_ hattest Du versucht? Die kann man angeben, um in ein anderes Verzeichnis zu "gehen". z.B.

chdir "K:\www\myweb\mystats";
open FILE, "stat.txt";

Sonst geht Perl immer vom Arbeitsverzeichnis aus, so dass auch solche Angaben möglich sind:

open FILE, "../eineebenehoeher/stat.txt";

Das Arbeitsverzeichnis ist immer das, von wo aus Perl aufgerufen wird. Auf dem Webspace ist es dann in der Regel das cgi-bin. Das kriegst du immer ausgegeben mit:

use strict;
use Cwd;
print cwd();

[code lang=perl]
   $count++ if m#.jpg|.gif|.png|.css|.js|.class|\robots.txt#;  #

print $count, $/;^Z
1685039
##################^^^^^^^ unverändert

####################################
   $count++ if m#.jpg|.gif|.png|.css|.js|.class.txt#;  #

print $count, $/;^Z
1685039
##################^^^^^^^ |\robots entfernt

Das war hier ein Tippfehler von mir: das Slash vor'm »r« von »robots« muss weg:

m#.jpg|.gif|.png|.css|.js|.class|robots.txt#

####################################
   $count++ if m#.jpg|.gif|.png|.css|.js.txt#;  #

print $count, $/;^Z
1648832
##################^^^^^^^ |.class entfernt  -  was ist mit .class gemeint?

Ich habe zwei oder drei Java-Applets auf old.atomic-eggs.com - da werden die sogenannten Java-Klassen geladen.

Deine anderen »Enfernungen« sind falsch, weil das | für »oder« fehlt. Der Ausdruck liest sich wie folgt:

$count++ if if m#.jpg|.gif|.png|.css|.js|.txt#;

Erhöhe einmal den Wert von $count (um 1), wenn in der Zeile .jpg ODER .gif ODER .png ODER .css ODER .js ODER .txt vorkommt. Somit werden nur Zeilen gezählt, die eine dieser Dateiendungen in der ganzen Zeile enthalten. Der Punkt hat in RegExp eine Bedeutung, weswegen er maskiert werden muss. Das | enspricht hier »ODER«.

Wenn Du | enfernst wie oben, heißt es:

Erhöhe den Wert von $count wenn (...) ODER die Zeichekette ».js.txt« (in dieser Reihenfolge) in der Zeile vorkommt (was eher unwahrscheinlich ist) ;)

##################^^^^^^^.txt entfernt und vor .png statt |\ nur \ So richtig?

s. oben ;)

Viele Grüße aus Frankfurt/Main,
Patrick

--

_ - jenseits vom delirium - _
[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
Nichts ist unmöglich? Doch!
Heute schon gegökt?
0 79

Bekloppte User Agents zuordnen (RegExp)

Patrick Andrieu
  • programmiertechnik
  1. 0
    Cheatah
    1. 2

      UA-Statistiken fälschen

      Siechfred
      • perl
      1. 0
        Patrick Andrieu
        1. 1
          Siechfred
          1. 0

            Die erfolgreiche Fälschung

            Patrick Andrieu
            1. 1

              Das Modul zur erfolgreichen Fälschung?

              Siechfred
              1. 0
                Patrick Andrieu
                1. 0
                  Siechfred
              2. 0
                Siechfred
              3. 0
                Patrick Andrieu
                1. 0
                  Siechfred
                  1. 0
                    Patrick Andrieu
                    1. 0
                      Siechfred
                      1. 0
                        Patrick Andrieu
                        1. 0
                          Siechfred
                          1. 0
                            Patrick Andrieu
                            1. 0
                              Siechfred
                              1. 0
                                Patrick Andrieu
                                1. 0
                                  Patrick Andrieu
                                  1. 0
                                    Siechfred
                                    1. 0
                                      Patrick Andrieu
                                      1. 0
                                        Siechfred
                                        1. 0
                                          Patrick Andrieu
                                          1. 0
                                            Patrick Andrieu
                                          2. 0
                                            Siechfred
                                2. 0
                                  Siechfred
            2. 0

              Die erfolgreichen Statmaker- und -fälscher-Skripts für 1&1-User!

              Patrick Andrieu
              1. 0
                Patrick Andrieu
                1. 0
                  Struppi
                  1. 0
                    Patrick Andrieu
    2. 0
      Patrick Andrieu
      1. 0
        Cheatah
        1. 0
          Patrick Andrieu
  2. 0
    Don P
    1. 0
      Don P
    2. 0
      Patrick Andrieu
      1. 0
        Don P
        1. 0
          Patrick Andrieu
          1. 0
            Don P
            1. 0
              Patrick Andrieu
      2. 0

        Logline splitter (RegExp)

        Patrick Andrieu
  3. 2
    Struppi
    1. 0
      Patrick Andrieu
      1. 0
        Patrick Andrieu
  4. 0
    Der Martin
    1. 0
      Alexander (HH)
    2. 0
      Patrick Andrieu
      1. 0
        Der Martin
        1. 0
          Cheatah
          1. 0
            Patrick Andrieu
            1. 0
              Cheatah
        2. 0
          Patrick Andrieu
          1. 0
            Der Martin
            1. 0

              RegExp'sch ist gar nicht so schwer :)

              Siechfred
              • menschelei
    3. 0
      Patrick Andrieu
      1. 0
        Der Martin
        1. 0
          Patrick Andrieu
          1. 0
            Patrick Andrieu
            1. 0
              Struppi
      2. 0
        Ingo Turski
        1. 0
          Patrick Andrieu
          1. 0
            Ingo Turski
            1. 0
              Patrick Andrieu
              1. 0
                Ingo Turski
                1. 0
                  Patrick Andrieu
                  1. 0
                    Engin
                  2. 0
                    Engin
                    1. 0
                      Patrick Andrieu
                      1. 0
                        Engin
                        1. 0
                          Patrick Andrieu
                          1. 0
                            Engin
                            1. 0
                              Patrick Andrieu
                              1. 0
                                Engin
                                1. 0
                                  Patrick Andrieu
                                  1. 0
                                    Engin
                  3. 0
                    Ingo Turski
                    1. 0
                      Patrick Andrieu
        2. 0
          Patrick Andrieu