ilch Forum » Allgemein » HTML, PHP, SQL,... » Zeitsperre in IP Logger

Geschlossen
  1. #1
    User Pic
    respawn110 Mitglied
    Registriert seit
    20.04.2008
    Beiträge
    9
    Beitragswertungen
    0 Beitragspunkte
    Hallo ihr lieben !

    Ich weiß das klingt blöde , aber ich bekomms net geschissen die Zeitsperre im IP Logger einzubetten .....

    Habe ein Script geladen und möchte es mit der IP Logger PHP zusammenfügen um eine Zeitsperre drinnzuhaben :

    // 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
    }


    Das hier ist die IP Logger PHP :

    <?php
    
    $ip = $_SERVER['REMOTE_ADDR'];
    $datum = date("Y.m.d");
    $zeit = date("h:i:s");
    $name= $_SESSION['authname'];
    
    
    
    $fp = fopen("daylog.txt","a");
    if ($fp)
    {
    flock($fp,2);
    fputs ($fp, "IP = $ip am $datum um $zeit als $name
    
    ");
    echo "OK";
    flock($fp,3);
    fclose($fp);
    }
    else
    {
    echo "Fehler";
    }
    ?>


    Kann mir das einer passen zusammenstellen , dass es funkts ??? ....

    LG Matze

    betroffene Homepage: externer Link
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    respawn110 Mitglied
    Registriert seit
    20.04.2008
    Beiträge
    9
    Beitragswertungen
    0 Beitragspunkte
    Es wird benötigt: ip.txt (chmod 777), count.txt (chmod 777), log.txt (chmod 777)
    
    [PHP]<?php
    
    $DateinameCount = "count.txt";
    $DateinameIP = "ip.txt";
    $Zeitsperre = 86400;
    
    $Gefunden = FALSE;
    $IPListe = file($DateinameIP);
    
    if(count($IPListe) > 0)
    {
    foreach($IPListe as $Zeile)
    {
    $GesplitteteZeile = explode("|", $Zeile);
    
    if(($GesplitteteZeile[0]+$Zeitsperre) > time())
    {
    $NeueIPListe[] = trim($Zeile)."\n";
    }
    }
    
    if(count($NeueIPListe) > 0)
    {
    foreach($NeueIPListe as $Zeile)
    {
    $GesplitteteZeile = explode("|", $Zeile);
    
    if(trim($GesplitteteZeile[1]) == $_SERVER['REMOTE_ADDR'])
    {
    $Gefunden = TRUE;
    }
    }
    }
    }
    
    $FilePointerIP = fopen($DateinameIP, "w");
    
    if(count($IPListe) > 0 && count($NeueIPListe) > 0)
    {
    foreach($NeueIPListe as $Zeile)
    {
    fwrite($FilePointerIP, trim($Zeile)."\n");
    }
    }
    
    if(!$Gefunden)
    {
    fwrite($FilePointerIP, time()."|".$_SERVER['REMOTE_ADDR']."\n");
    }
    
    fclose($FilePointerIP);
    
    $FilePointerCount = fopen($DateinameCount, "r+");
    $Counter = fread($FilePointerCount, filesize($DateinameCount));
    
    if(!$Gefunden)
    {
    $Counter++;
    rewind($FilePointerCount);
    fwrite($FilePointerCount, $Counter);
    }
    
    fclose($FilePointerCount);
    
    echo$Counter;
    
    
    
    
    
    function logIP() {
    $ipLog="log.txt";
    
    $register_globals = (bool) ini_get('register_gobals');
    ($_SERVER['HTTP_REFERER']);
    if ($register_globals) $ip = getenv(REMOTE_ADDR);
    else $ip = $_SERVER['REMOTE_ADDR'];
    $date=date ("l dS of F Y h:i:s A");
    $log=fopen("$ipLog", "a+");
    $ref = $_SERVER['HTTP_REFERER'];
    
    if (preg_match("/\bhtm\b/i", $ipLog) || preg_match("/\bhtml\b/i", $ipLog)) {
    fputs($log, "Logged IP address: $ip - Date logged: $date - ref: $ref ");
    } else fputs($log, "Logged IP address: $ip - Date logged: $date - ref: $ref\n");
    fclose($log);
    }
    logIp();
    
    
    ?>[/PHP]


    Dieses script hab ich auchnoch gefunden fals es hilft ....
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten