Ankündigung

Einklappen
Keine Ankündigung bisher.

[Tutorial] IP-Adressen sperren

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Tutorial] IP-Adressen sperren

    Hallo zusammen,

    Nachfolgendes Tutorial ist von diesem Thema inspiriert. Nachfolgender Code sperrt eine oder mehrere IP-Adressen zum Zugriff auf die Seite aus. Auch das Aussperren von ganzen IP-Blöcken ist dank der Verwendung von Platzhaltern möglich.

    Das Skript wurde für die Version 2.1.1 entwickelt. Da aber auf keine Systemdateien von Contrexx zugegriffen wird, ist die Modifikation auch in allen anderen Versionen möglich.

    1. Zuerst fügt ihr ganz oben in der index.php folgende Zeile ein:

      PHP-Code:
      <?php
      require_once 'filter.php';
      Achtung: der <?php-Tag ist in der index.php bereits vorhanden und muss unbedingt vor der neu eingefügten Anweisung stehen bleiben (siehe Beispiel)!
    2. Anschliessend erstellt ihr - ebenfalls im Hauptverzeichnis - eine Datei filter.php mit folgendem Inhalt. (Anmerkung: Die Datei kann auch anders heissen und in einem Unterverzeichnis liegen - in diesem Fall muss aber der Pfad in Schritt 1 dementsprechend angepasst werden).

      PHP-Code:
      <?php
          
      $arrBannedIPs 
      = array('127.0.0.1''192.168.*.*');
      $ip $_SERVER['REMOTE_ADDR'];
          
       foreach (
      $arrBannedIPs as $intKey => $strIP) {
           
      $strIP str_replace(".",'\.'$strIP$intCount);
           
      $strIP str_replace("*",'.*'$strIP$intCount);
           
           if (
      preg_match('/'.$strIP.'/'$ip)) {
               die(
      "Banned IP");
           }
       }
       
       
      ?>
      Unter $arrBannedIPs könnt ihr die zu sperrenden IP-Adressen kommagetrennt eintragen. Auch der *-Platzhalter kann zur Sperrung ganzer IP-Blöcke verwendet werden.
    Zuletzt geändert von kaelin; 11.07.2009, 09:54.
    Forenregeln | Contrexx-Wiki | Contrexx-Themes

  • #2
    Hallo Thomas,

    klasse Sache. Beim lokalen Test (Ver 2.0.1) ist mir allerdings folgendes aufgefallen:

    192.168.*.* ==> Sperre funktioniert
    192.168.1.* => Sperre funktioniert nicht
    192.168.1.101 > Sperre funktioniert nicht

    Was mache ich falsch?

    Edit: Das mache ich falsch: Ich hab zwei Router hintereinander hängen. Dadurch muss ich natürlich die IP des Routers sperren, was das Aussperren einzelner Rechner unmöglich macht. Schade. Ist aber nicht wichtig für mich - war nur ein Test.
    Zuletzt geändert von weissnix; 09.07.2009, 21:47.
    denken erfordert die aktive Verwendung des Gehirns
    http://www.unser-zoohause.de || Tipp: Debuggen von Designs, Anleitung Themes

    Kommentar


    • #3
      Ich hab da mal ne Frage: Als ich so 5 IPs drinne hatte konnte meine TestIP noch immer durch, wie ist das möglich?

      Kommentar


      • #4
        Hallo SnowDragon,

        Änder das Skript mal wie folgt:

        PHP-Code:
        $ip $_SERVER['REMOTE_ADDR'];
        echo 
        $ip//Neue Zeile 
        Du solltest nun beim Seitenaufruf ganz oben Deine IP sehen. Stimmt diese wirklich mit der im Filter definierten Adressen überein?
        Forenregeln | Contrexx-Wiki | Contrexx-Themes

        Kommentar

        Lädt...
        X