PHP: IP / Zeitsperre programmieren

#0
14.10.2007, 17:23
Cooliooo
zu Gast
#1 Hallo @Jan,

ich habe folgendes Script dafür gefunden:

Code

// Autor: Mathias Wagner
// E-Mail: [email]info@hugo-schaschlik.de[/email]

// Datei api.php
// Funktion fuer die IP-Sperre
// kann man bei Abstimmungen oder Gaestebucheintraegen
// verwenden

function checkIP($ip)
{
    // Zeit in Minuten fuer die IP Sperre
    $iTime = 5;
    // IP Datei oeffnen
    $hfp = file('ip.txt');
    // Anzahl Zeilen fuer die Schleife
    $iLines = sizeof($hfp);
    $timestamp = time();
    // Neue Datei die am Schluss geschrieben wird
    $strNewIPFile = '';
    for($i=0;$i<$iLines;$i++)
    {
        // Die Zeile anhand des Trennzeichens ';' splitten
        $rgSplited = explode(";",$hfp[$i]);
        // Wurde das Zeitlimit ueberschritten
        if(($rgSplited[1]+ 60*$iTime) > $timestamp)
        {
            // die Zeile, die uns sagt, dass diese Zeit noch nicht
            // aelter als $iTime ist in die neue Datei schreiben
            $strNewIPFile .= $rgSplited[0].';'.$rgSplited[1]."\n";
            if($rgSplited[0] == $ip)
            {
                //Check ob die Zeit fuer die IP verstrichen ist
                // Fehlermeldung ausgeben
                echo 'Fehler';
                     exit;        
            }
        }        
    }
    // Die aktuelle IP schreiben
    $newIPFile .= $ip.';'.$timestamp."\n";
    // Datei neu schreiben
    $hFile = fopen('ip.txt', 'w');
    fwrite($hFile, $newIPFile, 1024);
} // end of checkIP()




// Diese Funktion nehme ich her, ob z.B. bei Downloads her,
// um den Traffic zu regulieren
function checkTime()
{
    // Zeit in Minuten fuer die Zeitsperre
    $iTime = 5;
    $hfp=file('time.txt');
    $timestamp=time();
    $strNewFile = '';
    if(($hfp[0]+(60*$iTime)) > $timestamp)  
    {
        echo 'Fehler';
        return false;
    }
   fclose($hfp);
   $strNewFile=$timestamp;
   $hFile = fopen('time.txt', 'w');
   fwrite($hFile, $strNewFile, 256);
   return true;      
} // end of checkTime()

###############################################

// Datei index.php
include('api.php');
// IP Adresse ermitteln        
$strIP = $_SERVER['REMOTE_ADDR'];
// IP Sperrenaufruf
checkIP($strIP);

// Zeitsperrenaufruf
if(checkTime() == true)
{
    //... do something
}  
Wichtig ist hier, dass die Dateien ip.txt und time.txt im gleichen Verzeichnis liegen müssen wie die index.php Datei (gegebenenfalls die Pfade anpassen!). Alle drei Dateien müssen unter *NIX die Rechte auf 0666 stehen haben.
Seitenanfang Seitenende
29.04.2009, 15:43
...neu hier

Beiträge: 3
#2 habe das nicht richtig verstanden den wie wollte das mal versuchen bei meinem linkroboter vielleicht kannst du mir ja helfen
Seitenanfang Seitenende
29.04.2009, 16:23
Member
Avatar Laserpointa

Beiträge: 2171
#3 @wernyko
magst Du Deinen Beitrag nochmal editieren oder einen neuen aufmachen?
Ich verstehe Deinen Beitrag leider nicht.

Greetz Lp
Seitenanfang Seitenende
Um auf dieses Thema zu ANTWORTEN
bitte erst » hier kostenlos registrieren!!

Folgende Themen könnten Dich auch interessieren: