Avatar billede tanx Nybegynder
21. februar 2006 - 13:04 Der er 6 kommentarer og
1 løsning

IP banning

Davser

Emnet er blevet berørt i andre tråde, men jeg vil nu tillade mig alligevel at poste en variant af tidligere indlæg.

Er det muligt at lave et ip banning system der :

Blokerer ip-adresser HVIS den pågældende ip-adresse foretager mere end f.eks. 5 "serverhits" pr. sekund i 60 sammenhængende sekunder.
Systemet skulle også kunne konfigureres således at visse ip-adresser ikke blokeres trods mange hits.

Formålet med systemet er at blokke ip'er hvor der i realiteten er tale om email harvesting, web grabbing m.v.

Forslag til kode modtages gerne.
Avatar billede espersen Novice
21. februar 2006 - 14:24 #1
Avatar billede blueeye97 Nybegynder
21. februar 2006 - 17:45 #2
Hvorfor banne ?

Brug nedenstående counter. Den registrerer kun en IP én gang og venter så 10 minutter før samme IP kan registreres igen.



<?
$expire= 600;         
$logfile= "counter.log";



$incpath=substr(__FILE__, 0, strrpos(__FILE__, "/")+1);
$logfile=$incpath.$logfile;
$ip= getenv('REMOTE_ADDR');
$visits=0;
$badhit= false;
$now= time();


$ips = array(array());
if (file_exists($logfile)){
if ($loggedips=file($logfile)){
$visits=trim($loggedips[0]);
for ($i=1; $i< count($loggedips); $i++){
$loggedips[$i]=trim($loggedips[$i]);
$ips[$i] = explode('||', $loggedips[$i]);
if (($ips[$i][0]==$ip) && ($now-$ips[$i][1]< $expire))
$badhit= true;
}
if ($badhit)
echo $visits;
else{
$visits++;
$fp= fopen($logfile, 'w');
fputs($fp,"$visits\n");
for ($i=1; $i< count($loggedips); $i++){
if ($now-$ips[$i][1] < $expire)
fputs($fp, $ips[$i][0]."||".$ips[$i][1]."\n");
}
fputs($fp, "$ip||$now\n");
fclose($fp);
echo "<font face='Verdana' size='1' color='#000066'>".$visits;           
        }
    }
}else
    echo "Logfil ikke fundet";



?>
Avatar billede blueeye97 Nybegynder
21. februar 2006 - 17:47 #3
Du kan selvfølgelig selv bestemme antallet af sekunder ved at ændre nedenstående linie...

$expire= 600;
Avatar billede fixbabe Nybegynder
21. februar 2006 - 21:58 #4
Avatar billede tanx Nybegynder
22. februar 2006 - 02:04 #5
Tak alle tre for forslag og links - jeg snupper espersens forslag - det virkede bedste i forhold til hvad jeg var ude efter.

Smid et svar og få point.
Avatar billede espersen Novice
22. februar 2006 - 09:02 #6
;o)
Avatar billede espersen Novice
22. februar 2006 - 15:35 #7
takker ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester