• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

IP-Sperre

Status
Für weitere Antworten geschlossen.

evabrit

Neues Mitglied
Weiß jemand, wie ich Ip´s sperren kann? also so, das sie meine seite nicht mehr besuchen können
es geht um diese IP : 85.178.170.102
da manche ip´s sich täglich ändern..kann auch nur der anfang sperren?
danke schonmal
 
Das macht eigendlich in den PHP bereich, da dies nicht mit html funktioniert.
Also kurz vom prinzip:
Mit dem befehl $_SERVER['REMOTE_ADDR'], kannst du die IP des internet users anzeigen lassen, und dann diese in z.B: in einer datenbank speichern
PHP:
if($_SERVER['REMOTE_ADDR'] !== /*überprüfen ob es in der datenbank ist */) {
//der teil wenn ip nicht gesperrt ist
} 
else {
//der teil wenn gespert ist
}
Hoffe konnte helfen
RaZ0oR
 
Das ist kein Befehl sondern ein Array-Index. Und was soll man mit einer Datenbank wenn es nur um eine Adresse geht?

PHP:
<?php
  //Auf ganze IP prüfen
  if($_SERVER['REMOTE_ADDR'] == '85.178.170.102') {
    echo '<h1>Bleib draußen!</h1>';
  } else {
?>
<!-- Hier das HTML Zeug -->
<?php } ?>
Um z.B. nur auf die ersten 2 Stellen zu überprüfen, die enstprechende Zeile dur das hier ersetzen:
PHP:
if(substr($_SERVER['REMOTE_ADDR'], 0, 5) == '85.178') {
 
Also ich finde den Ansatz von BcF gut.
Was man nun dort jedoch machen könnte, wäre alle IP's in Datenbanken setzen und dann mit der query überprüfen.

Also so die Tabelle (z.B. ipsperre)
PHP:
+-----+----------------+
| ID  |  IP            |
+-----+----------------+
| 1   | 80.123.123.123 |
| usw | blabla         |
+-----+----------------+
Also eine ID Spalte und eine IP Spalte. ID ist auf auto_increment gesetzt*.


Nun kann man ja irgend ein Admintool machen, in dem man die Spalten mit Einträgen mit den gesperrten IP's füllt.

Dann eigendlich nur ausgeben und prüfen, wie BcF etwa:
PHP:
<?php
@mysql_connect("localhost", "user", "pw") OR die(mysql_error());
@mysql_select_db("database") OR die(mysql_error());

$sql = "SELECT ID, IP FROM ipsperre WHERE IP = '".$_SERVER['REMOTE_ADDR']."'";
$result = mysql_query($sql) OR die(mysql_error());

if(mysql_num_rows($result) > 0) // Wenn es also einen Eintrag hat, mit der Besucherip
{
 echo 'Die Seite ist unter Ihrer IP Adresse nicht verfügbar';
}
else
{
?>
<!--HTML TEIL-->
<?php
}
?>

Das wärs doch schon, oder?
Falls ich was falsch habe, informiert mich, habe nix getestet, war alles kurz aus dem Kopf.

Natürlich gibt es viele Wege sowas zu bauen. Und das hier ist auch nur n Ansatz.

Ach ja, @ Threadsteller, du erwähntest ja etwas mit den ersten paar Stellen:
da manche ip´s sich täglich ändern..kann auch nur der anfang sperren?
[/php]
Nun man könnte mit substr und strlen alles auf z.B. 10 Zeichen begrenzen, dann werden nur die ersten 10 Zeichen in die DB gesetzt.

Jedoch ist dann die Frage, wie mann das dann überprüft, wenn nur irgendwie etwas mit 80.128.135. (10 Zeichen hier) in der DB sind.

Ich dachte da wieder an substr oder strlen, habe jedoch keinen direkten Ansatz.

(Ich hoffe, ihr habt es n wenig kapiert, was ich meine. Habe momentan ein durcheinander im Kopf :D).

Bin auf Verbesserungsvorschläge oder Fehlerkorrekturen dankbar.



MfG, matibaski

(Und schon wieder n Haufen Text xD)
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben