Dennis: PHP Counter wird durch crawlen verfälscht...

Beitrag lesen

Hi Erri,

Zwei User und dieselbe IP? (Sag niemals nie), aber rein technisch gesehen funktioniert dies nicht, zumindestens zur selben Zeit...

Wie dir bereits gesagt wurde, haben mehrere PC's, die hinter einen Route hängen die gleiche IP (auch zur gleichen Zeit, zumindest nach außen hin - intern gibts wieder andere IP's *g*).
Und das dürfte wohl in jedem Firmennetzwerk so sein...

Ich möchte auch nur IPs von Crawlern nach dem Besuch verwerfen... Diese verwenden statische IPs, welche also nicht von "normalen" Surfern genutzt werden... Diese haben (meist) dynamische IP`s von Ihren Providern. Deswegen ja die vorgegebenen Bereiche.

Nun, dann überlegen wir doch mal, wie wir es auf die "faule" Art anstellen könnten, alle entsprechenden IP's rauszuwerfen.

Du sagstest Google hätte die IP's von 66.249.64.0 bis 66.249.95.255, da gehen wir am besten mit einer for Schleife ran:

  
for($x = 64; $x <= 95; $x ++)  
{  
  for($y = 0; $y <= 255; $y++)  
  {  
    $sql = "DELETE FROM  
              my_table  
            WHERE  
              ip = '66.149.".$x.".".$y.'  
           ";  
    mysql_query($sql) OR die(mysql_error());  
  }  
}  

Durch einen Aufruf dieses Scriptes solltest du eigentlich alle entsprechenden IP's rauswerfen können. Wird aber vielleicht trotzdem noch etwas aufwendig, wenn du das für mehrere Robots machen musst....

Bzgl. Crawler wäre es vielleicht einfacher, Sie am Useragent zu erkennen. D.h. verwerfe Sie nicht, sondern untersuche das im Nachhinein in Deiner Auswertung.
Das möchte ich ja auch im Nachhinein tun...

Könntest du mir dies mit dem Useragent genauer erklären? Dies habe ich nicht ganz verstanden.

Der Useragent ist eine Umgebungsvariable, die du in $_SERVER findest. Da steht im Idealfall eine Zeichenkette drin, die dir verrät, welches User Agent (= Browser) deine Seite aufgerufen hat. Beachte aber, dass ein Besucher diesen User Agenten nach Belieben fälschen kann, oft wird dies z.B. auch von einer Firewall gemacht.

MfG, Dennis.

--
Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:( mo:} zu:| [decode]
Sinnvolles Zitieren: Man zitiert nur Teilsätze des Vorposters auf die man sich bezieht! Nicht einfach alles.