Marktplatz Downloads Tutorials Forum

Designnation bietet auch:

Tutorial hinzufügen

Beliebte Links Weitere Optionen

Tutorial suchen

Titel

Schlüsselwörter

PHP / MySQL Tutorial: Eine IP bannen (Range Ban)



Ranking: +9   Kommentare: 5   |   Bewertung: Keine Berechtigung!  

Moin,

manchmal möchte man bestimme User einfach nicht auf seiner Homepage haben.
In diesem Tutorial möchte ich euch zeigen, wie ihr eine IP bannen könnt.

Die IP des Benutzers bekommt man übrigens mit $_SERVER['REMOTE_ADDR'] heraus.

Zuerst ermitteln wir also die IP des Benutzers und zerlegen sie in vier Teile.

Code:


<?php

$userIP 
$_SERVER['REMOTE_ADDR'];       // Benutzer IP, zum Beispiel 127.0.0.1

$aUserIP explode("."$userIP);



$banned false;





Dann legen wir die gebannten IPs fest.

Code:


$bannedIP = array();

$bannedIP[] = "255.255.255.256";

$bannedIP[] = "255.256.*.*";

$bannedIP[] = "256.*.*.*";




Pro IP einfach eine Zeile anhängen. Der Stern (*) kann als Platzhalter genutzt werden.
Würde zum Beispiel die IP 123.456.*.* eingetragen, wäre 123.456.156.145 auch gebannt.

Dann folgt eine Schleife, bei der wir jede gebannte IP durchgehen, und die vier Blöcke mit der eigenen vergleichen.

Code:




foreach($bannedIP as $ip){

  $aBanIP = explode(".", $ip);         // Array, enthält die vier Teile der gebannten IP

  

for($i = 0; $i < 4; $i++){

  if(($aBanIP[$i] == $aUserIP[$i]) or $aBanIP[$i] == "*"){

    $countPart++;

  }

}



if($countPart >= 4){

  $banned = true;

}



$countPart = 0;

  

}



Nun ist in der Variable $countPart die Anzahl der übereinstimmenden Blöcke gespeichert.
Wenn das vier sind, wir $banned auf true gesetzt und der User ist damit gebannt.

Code:




if($banned){

echo "Sie dürfen diese Seite leider nicht betreten.";

exit;

}




Der komplette Code:[/code]

Code:


<?php

$userIP 
$_SERVER['REMOTE_ADDR'];

$aUserIP explode("."$userIP);



$banned false;



$bannedIP = array();

$bannedIP[] = "255.255.255.256";

$bannedIP[] = "255.256.*.*";

$bannedIP[] = "256.*.*.*";



foreach(
$bannedIP as $ip){

  
$aBanIP explode("."$ip);

  

  for(
$i 0$i 4$i++){

    if((
$aBanIP[$i] == $aUserIP[$i]) or $aBanIP[$i] == "*"){

      
$countPart++;

    }

  }



  if(
$countPart >= 4){

    
$banned true;

  }



  
$countPart 0;

}

  

if(
$banned){

  echo 
"Sie dürfen diese Seite leider nicht betreten.";

  exit;

}



// content



?>



Achtung:
Seid mit den Platzhalter nicht zu größzügig. Es passier sehr schnell, dass ein falscher Benutzer ausgesperrt wird.




by www.detrust.de


Veröffentlicht von: deleted_1317046593
Veröffentlicht am: 28 Sep. 2008
Bookmarks: social bookmarking yigg it Linkarena Technorati Yahoo Mr. Wrong
Schlüsserwörter: aussprerren Ban IP Platzhalter Range

Kommentar(e) (5)


Maxximum sagt:

Sehr schön, ich mag Skripts mit Platzhalter :-)

Ich mach das aber mit preg_replace, da ich an einem komplexen Skript arbeite und jede Millisk zählt ;-)


26 Oct. 2008 13:15:16 • Antworten


just-tim sagt:

sehr schönes Tutorial

8 Oct. 2008 09:44:23 • Antworten


EintrachtManu sagt:

Sehr gutes Tut!

3 Oct. 2008 15:03:59 • Antworten


deleted_1317046593 sagt:

Joa, das sind so die paar Millisekunden, die eigentlich nur bei einem komplexen Script auffallen.

Für kleine Test- und Mini-Scripts sollte das so reichen, dank ich. ;)

Zuletzt bearbeitet am: 15 Oct. 2008 07:18:55

3 Oct. 2008 07:51:36 • Antworten


deleted_1355582138 sagt:

Ansicht ganz gut das Tutorial!

Allerdings würde ich $countPart zu beginn der Schleife Deklarieren!
Nachdem $banned auf TRUE gesetzt wurde, würde ich die schleifen beenden!
Wäre ja sinnlos sie weiter laufen zu lassen, obwohl bereits feststeht, das der User gebannt ist!

Eigentlich ist so ein IP Bann blödsinn, denn wenn ich nicht will, das leute meine sachen im netz sehen, dann veröffentlich ich diese auch nicht!

Edit: Für das Tutorial gibt es aber trotzdem ein

Zuletzt bearbeitet am: 2 Oct. 2008 21:48:28

2 Oct. 2008 21:47:12 • Antworten



Anfang

<<

1

>>

Ende

Kommentar eintragen


!! Jetzt kostenlos anmelden oder einloggen und mitdiskutieren!


Partner: • Designer in ActionFlash HilfeTutorials.dePixelio.deFlashstar BlogLizenzfreie Bilder