digiTALE
Lt. Junior Grade
- Registriert
- Juli 2004
- Beiträge
- 270
Seid gegrüßt.
Ich bin schon seit längerem dabei, einen hervorragenden PHP Counter zu basteln, der nur die "echten" Besucher zählt. Klappt auch alles wunderbar... Nur wollte ich die IP's besser Filtern!
So sieht der bisherige Code aus!
Die IP's unter $sonder_ip werden irgendwie nicht überprüft wenn ich z.B. 72.232.55.3 als test IP angebe! Woran kann das liegen?
Mfg chriZ
Ich bin schon seit längerem dabei, einen hervorragenden PHP Counter zu basteln, der nur die "echten" Besucher zählt. Klappt auch alles wunderbar... Nur wollte ich die IP's besser Filtern!
So sieht der bisherige Code aus!
PHP:
<?
if ($_SERVER["HTTP_X_FORWARDED_FOR"] == TRUE) {
$split = explode(",", $_SERVER["HTTP_X_FORWARDED_FOR"]);
$userip = $split[1];
} elseif ($_SERVER["REMOTE_ADDR"] == TRUE) {
$userip = $_SERVER["REMOTE_ADDR"];
} else {
$userip = NULL;
}
$normal_ip = array(
"4.79.245.66"
);
$sonder_ip = array(
"(72)\.(232)\.([0-2][0-5][0-5])\.([0-2][0-5][0-5])",
"(85)\.(25)\.([0-2][0-5][0-5])\.([0-2][0-5][0-5])",
"(127)\.(0)\.([0-2][0-5][0-5])\.([0-2][0-5][0-5])",
"(192)\.(168)\.([0-2][0-5][0-5])\.([0-2][0-5][0-5])",
"(195)\.(93)\.([0-2][0-5][0-5])\.([0-2][0-5][0-5])",
"(195)\.(225)\.([0-2][0-5][0-5])\.([0-2][0-5][0-5])",
);
$suchmuster = array(
"agent",
"archive[r]",
"anonym",
"bot",
"client",
"crawl[er]",
"francis",
"image",
"java",
"jeeves",
"jigsaw",
"lib(?:cur|www)",
"link",
"mail",
"meta",
"microsoft",
"oegp",
"search",
"seeker",
"snappy",
"sp[iy]der",
"unknown",
"url",
"w3c",
"yahoo",
);
/* C O U N T E R */
if (!preg_match('/' .implode('|', $suchmuster). '/i', $_SERVER['HTTP_USER_AGENT']) && !preg_match('/' .implode('|', $sonder_ip). '/', $userip) && !in_array($userip, $normal_ip))
{
print "echter Besucher | " .$userip. "";
}
else
{
print "Spider oder Bot | " .$userip. "";
}
?>
Die IP's unter $sonder_ip werden irgendwie nicht überprüft wenn ich z.B. 72.232.55.3 als test IP angebe! Woran kann das liegen?
Mfg chriZ