IP protokollieren

    • IP protokollieren

      Hallo zusammen,

      Sicherheitshalber die Original Dateien sichern:

      Als erstes in der MYSQL Datenbank, Tabelle "profiles", ein neues Feld namens "IP" hinzufügen:
      SQL Befehl:

      Quellcode

      1. ALTER TABLE `Profiles` ADD `IP` varchar(16) ;

      Dann in der Datei inc/utils.inc.php folgendes finden:

      /*
      * Common functions
      */

      und direkt danach folgendes einfügen

      Quellcode

      1. function GetIP()
      2. {
      3. if (getenv("HTTP_CLIENT_IP")) $ip = getenv("HTTP_CLIENT_IP");
      4. else if(getenv("HTTP_X_FORWARDED_FOR")) $ip = getenv("HTTP_X_FORWARDED_FOR");
      5. else if(getenv("REMOTE_ADDR")) $ip = getenv("REMOTE_ADDR");
      6. else $ip = "UNKNOWN";
      7. if (ereg(",", $ip))
      8. {
      9. $ipArr = explode(",", $ip);
      10. $ip = $ipArr[0];
      11. }
      12. return $ip;
      13. }
      Alles anzeigen

      dann in join_form.php folgendes finden:

      $page_text = _t( "_JOIN3" ) . $add_on;

      und direkt davor folgendes einfügen:

      Quellcode

      1. //GET IP get ip
      2. $ip = GetIP();
      3. db_res(" UPDATE `Profiles` SET `IP` = '$ip' WHERE `ID` = '$IDnormal' ");
      4. //END GET IP

      in inc/admin.inc.php folgendes finden:

      switch( $db )
      {
      case 'Profiles': $member = 0; break;
      case 'Admins': $member = 1; break;
      case 'aff': $member = 2; break;
      case 'moderators': $member = 3; break;
      }

      und direkt danach folgendes einfügen:

      Quellcode

      1. //GET IP get ip
      2. $ip = GetIP();
      3. db_res(" UPDATE `Profiles` SET `IP` = '$ip' WHERE `ID` = '$ID' ");
      4. //END GET IP


      Um sich als Admin nun die IP Adresse anzeigen zu lassen, muss man noch unten stehenden Code verändern und man kann dann die IP Adresse sehen, wenn man den User direkt aus dem Admin anklickt und in auf die PRofil bearbeiten Seite kommt.

      In der profile_edit.php folgendes suchen:

      if ( !$MEMBER )
      {
      echo "<div class=small2>"._t("_Last logged in").": ";
      if ( !$p_arr['LastLoggedIn'] || $p_arr['LastLoggedIn'] == "0000-00-00 00:00:00" )
      echo _t("_never");
      else
      echo $p_arr[LastLoggedIn];
      echo "</div>";

      und direkt danach (vor der geschweiften Klammer) folgendes eingeben:

      Quellcode

      1. //IP Address Display
      2. echo "<br><b>Letzte bekannte IP: </b>$p_arr[IP]";

      Fertig! : -)

      Bei mir funktioniert es super.
      Zum Eintrag in der Datenbank
      Das Leben ist Scheiße... Aber die Grafik ist Saugeil !!! :baby:
    • RE: IP protokollieren

      Als erstes vielen Dank für das Script. Habe es wie beschrieben eingebaut und es funktionierte auf Anhieb. Ich nutze momentan die Version6.0.3 - Aber leider funktioniert nun das Gästebuch nicht mehr. Es kommt die Meldung im Browser: Database query error - Warning: mysql_query() : meinServerPfad\inc\db.inc.php on line 106
      Warning: Unknown: 1 result set(s) not freed. Use mysql_free_result to free result sets which were requested using mysql_query() in Unknown on line 0
      PHP Warning: mysql_query() : Column 'IP' in field list is ambiguous in meinServerPfad\inc\db.inc.php on line 106 PHP Warning: Unknown: 1 result set(s) not freed. Use mysql_free_result to free result sets which were requested using mysql_query() in Unknown on line 0
      Hat das auch schon jemand festgestellt?
    • uhhhh, ich benutze 6.05 und nutze das Gästebuch gar nicht. Vielleicht könnte man mal versuchen das Feld in der Datenbank nicht IP sodern IP_User zu nennen und dann n den Seiten Codes das 'IP' durch I'P_User' zu ersetzen.

      So würde ch es versuchen. Kann Dir aber ncht sagen, ob das klappt, denn PHP ist nicht unbedingt meine Stärke.
      Das Leben ist Scheiße... Aber die Grafik ist Saugeil !!! :baby: