IP tracking

Du suchst einen bestimmten Mod, weißt aber nicht genau wo bzw. ob er überhaupt existiert? Wenn dir dieser Artikel nicht weiterhilft, kannst du hier den von dir gewünschten/gesuchten Mod beschreiben ...
Falls ein Mod-Autor eine der Anfragen hier aufnimmt, um einen neuen Mod zu entwickeln, geht's in [3.0.x] Mods in Entwicklung weiter.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Bierhasser
Mitglied
Beiträge: 97
Registriert: 24.03.2002 09:13
Wohnort: Schwabenland
Kontaktdaten:

Re: IP tracking

Beitrag von Bierhasser »

was für einen phpbb Version verwendest du?
Tim
Mitglied
Beiträge: 613
Registriert: 13.03.2009 21:33

Re: IP tracking

Beitrag von Tim »

Die 3.0.2er noch. Habe auch an jeder Stelle eine Fehlermeldung gehabt, beim Aktivieren der MOD kamen nur noch Fehlermeldungen, aus diesem Grund habe ich die MOD wieder manuel ausgebaut. Allerdings funktioniert der Installer beim Deinstallieren nicht (steht ja auch auf der Downloadseite, dass das unter 3.0.5 nicht funktioniert), darum muss ich aber jetzt wissen, was der Installer gemacht hat und wie ich das wieder raus bekomme. :wink:
Denn im Adminbereich habe ich nach dem manuellen Ausbau trotzdem noch die Einträge: http://img696.imageshack.us/img696/4664 ... ion126.png

Danke für deine Hilfe, LG Tim
Bierhasser
Mitglied
Beiträge: 97
Registriert: 24.03.2002 09:13
Wohnort: Schwabenland
Kontaktdaten:

Re: IP tracking

Beitrag von Bierhasser »

Du kannst die Fehlermeldung umgehen, in dem du die Datei includes/conf_ip_tracking.php auf chmod 777 setzt.
Und die Datei includes/functions_ip_tracking.php mit diesem Inhalt ersetzt:

Code: Alles auswählen

<?php
/**
*
* @author Bierhasser http://www.phpbb.de/community/memberlist.php?mode=viewprofile&u=3383
* @package Ip-Tracking
* @version 1.0.0
* @copyright (c) Bierhasser 2009
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

if (!defined('IN_PHPBB'))
{
    exit;
}

function track_ip ()
{
    global $db, $user, $auth, $_SERVER, $phpbb_root_path, $phpEx;

    $ip_conf = array();

    if ( file_exists($phpbb_root_path.'includes/conf_ip_tracking.'.$phpEx) )
    {
        include($phpbb_root_path.'includes/conf_ip_tracking.'.$phpEx);
    }
    else
    {
        return;
    }

    if ( !isset($ip_conf['log_admin']) || !isset($ip_conf['log_user']) || !isset($ip_conf['log_guest']) || !isset($ip_conf['log_bot']))
    {
        return;
    }

    // Alte Logeinträge löschen?
    if ( isset($ip_conf['log_last_rotate']) && isset($ip_conf['log_next_rotate']) )
    {
        $now = time();
        if ( $now >= $ip_conf['log_next_rotate'] && (int)$ip_conf['log_rotate'] > 0 )
        {
            $sql = 'DELETE FROM ' . IP_TRACK_TABLE . ' WHERE ip_time <= \''.$db->sql_escape($ip_conf['log_last_rotate']).'\'';
            $db->sql_query($sql);

            $sql = 'SELECT ip_time FROM ' . IP_TRACK_TABLE . ' ORDER BY ip_time ASC';
            $result = $db->sql_query_limit($sql, 1);
            $db->sql_return_on_error(false);

            if ((bool) $result === false)
            {
                $ip_first_entry = time();
            }
            else
            {
                $ip_first_entry = $db->sql_fetchfield('ip_time');
                $db->sql_freeresult($result);
            }

            $ip_conf['first_entry'] = $ip_first_entry;
            $ip_conf['log_last_rotate'] = time();
            $ip_conf['log_next_rotate'] = $ip_conf['log_last_rotate'] + (86400 * $ip_conf['log_rotate']);
            $ip_conf = safe_ip_conf($ip_conf);
        }
    }

    $usertype = ( $auth->acl_get('a_') ) ? 3 : $user->data['user_type'];
    $usertype = ( $user->data['is_bot'] ) ? 4 : $usertype;

    if ( !$ip_conf['log_admin'] && $usertype == 3 )
    {
        return;
    }
    if ( !$ip_conf['log_user'] && $usertype == 0 )
    {
        return;
    }
    if ( !$ip_conf['log_bot'] && $usertype == 4 )
    {
        return;
    }
    if ( !$ip_conf['log_guest'] && $usertype == 2 )
    {
        return;
    }

    $browser = $user->browser;
    if (strlen($browser) > 255)
    {
        $browser = substr($browser, 0, 255);
    }

    $referer = ( isset($_SERVER["HTTP_REFERER"]) ) ? $_SERVER["HTTP_REFERER"] : '';

    $ip_data = array(
                'ip_ip'        => $user->ip,
                'ip_time'        => time(),
                'ip_location'    => $db->sql_escape($_SERVER["REQUEST_URI"]),
                'ip_referer'    => $db->sql_escape($referer),
                'ip_username'    => $user->data['username'],
                'ip_user_id'    => $user->data['user_id'],
                'ip_user_type'    => $usertype,
                'ip_browser'    => $db->sql_escape($browser)
            );
    $db->sql_query('INSERT INTO ' . IP_TRACK_TABLE . ' ' . $db->sql_build_array('INSERT', $ip_data));
}

function safe_ip_conf($new = '' )
{

    // array?
    if ( !is_array($new) )
    {
        return FALSE;
    }

    // ist im array überhaupt ein wert?
    if ( count($new) < 1 )
    {
        return false;
    }

    $tmp_conf = array();

    //neue Werte $ip_conf zuweisen
    foreach( $new as $k => $v )
    {
        if ( strlen($k) > 0 )
        {
            $v = preg_replace( "/'/", "\\'" , $v );
            $v = preg_replace( "/\r|\n/", ""   , $v );
            $tmp_conf[ $k ] = $v;
        }
    }

    global $phpbb_root_path, $phpEx;

    ksort($tmp_conf);

    $file_string = '<?php
/**
*
* @author Bierhasser http://www.phpbb.de/community/memberlist.php?mode=viewprofile&u=3383
* @package Ip-Tracking
* @version 1.0.0
* @copyright (c) Bierhasser 2009
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/';
    foreach( $tmp_conf as $k => $v )
    {
        $v = ( is_numeric($v) ) ? (int)$v : "'$v'";
        $file_string .= "\n" . '$ip_conf[\'' . $k . '\'] = ' . $v . ';';
    }
    $file_string .= "\n?>";

    // schreibe neue conf_
    if ( $fh = @fopen($phpbb_root_path.'includes/conf_ip_tracking.'.$phpEx, 'w' ) )
    {

        fwrite($fh, $file_string, strlen($file_string) );
        fclose($fh);
        #phpbb_chmod($phpbb_root_path.'includes/conf_ip_tracking.'.$phpEx, CHMOD_WRITE);
    }
    return $tmp_conf;
}
?>


Zum löschen des Mods:
AdminCp -> System -> Modul-Konfiguration = Administrations Bereich -> Mods -> Ip Tracker

Alle Module löschen. Anschließend noch das Modul Ip Tracker entfernen.

In deiner phpbb_config Tabelle muss der Eintrag ip_tracking entfernt werden.

Code: Alles auswählen

DELETE FROM phpbb_config WHERE config_name = 'ip_tracking'
Die Tabelle phpbb_ip_tracking muss ebenfalls entfernt werden.

Code: Alles auswählen

DROP TABLE `phpbb_ip_tracking`
Benutzeravatar
jevo
Mitglied
Beiträge: 367
Registriert: 05.09.2007 13:06
Wohnort: Freiberg

Re: IP tracking

Beitrag von jevo »

Ich wollte nur mal ein kleines Feedback geben:

Mod geht super und kam echt keine sekunde zu spät. Ich nutze den jedenfalls sehr oft, gerade nach sperrungen, weil sich mal wieder jemand nicht benehmen konnte.

Fehler habe ich keine entdecken können, das einzige, was ich mal nachschaun muß ist, wie ich mehr Zeilen angezeigt bekommen kann - und das standardmäßig. z.b. 5000 wäre perfekt.

zur Performance: ich habe ca 1,6Mio Einträge (es wurden noch nie welche gelöscht)

die Konfig Seite dauert: 1.934s
Suche Seite: 0.924s (bei 500 Zeilen)
Multi Account: 27.165s + 1,9s um herauszufinden, daß 33057 Queries gemacht werden müssen

In meinem Server werkelt aber auch ein Core i7 :)
John Doe
Mitglied
Beiträge: 684
Registriert: 30.03.2005 01:06

Re: IP tracking

Beitrag von John Doe »

Bei mir werden die Einträge nicht nach dem eingestellten Intervall gelöscht.

z.B

Zeitraum für Aufzeichnung: 7Tage

Letzte Log Löschung: 18.01.2010 13:35
Nächste Log Löschung: 25.01.2010 13:35
Erster Ip Tracker Eintrag 16.01.2010 01:28

Heute am 26.01. waren keine logs gelöscht.
Es sind alle logs vom 16.01. bis 26.01 da.

phpbb 3.0.6 MySQL 5.0.51a
Bierhasser
Mitglied
Beiträge: 97
Registriert: 24.03.2002 09:13
Wohnort: Schwabenland
Kontaktdaten:

Re: IP tracking

Beitrag von Bierhasser »

Danke Für die Info. Muss ich nochmal nach sehen.
John Doe
Mitglied
Beiträge: 684
Registriert: 30.03.2005 01:06

Re: IP tracking

Beitrag von John Doe »

Oh mann, ganz doll. :oops:
John Doe hat geschrieben:Heute am 26.01. waren keine logs gelöscht.
Es sind alle logs vom 16.01. bis 26.01 da.
Da heute erst der 25.1. ist und die logs grade gelöscht wurden, ist alles in Ordnung. :)
Bierhasser
Mitglied
Beiträge: 97
Registriert: 24.03.2002 09:13
Wohnort: Schwabenland
Kontaktdaten:

Re: IP tracking

Beitrag von Bierhasser »

Danke für die Rückmeldung.
praesnceal
Mitglied
Beiträge: 25
Registriert: 23.12.2007 20:17
Kontaktdaten:

Re: IP tracking

Beitrag von praesnceal »

Ich bekomme beim ausführen des installers leider den Fehler "Allgemeiner Fehler" Diese Aktion kann nur ein Gründer ausführen!" Einer ne Idee? Habe phpBB 3.0.6 und IP Tracking 1.0.0.

lg
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12178
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: IP tracking

Beitrag von Mahony »

Hallo
Bist du Gründer und bist du auch im Forum angemeldet, wenn du den installer aufrufst?
Ansonsten würde es auch helfen diesen code

Code: Alles auswählen

if ($user->data['user_type'] != USER_FOUNDER)
{
    $template->assign_var('T_TEMPLATE_PATH', $phpbb_root_path . 'styles/' . $user->theme['template_path'] . '/template');
    trigger_error($user->lang['NEED_FOUNDER'], E_USER_ERROR);
} 
aus der installer_iptracker/index.php zu entfernen. Danach, solltest du allerdings nicht vergessen das Verzeichnis installer_iptracker zu löschen.

Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Antworten

Zurück zu „[3.0.x] Mod Suche/Anfragen“