kostenloser Webspace werbefrei: lima-city


Wie mittels PHP Script IPs speichern ?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    tradingcenter

    tradingcenter hat kostenlosen Webspace.

    Hallo liebe Community,

    koennt ihr mir tag/sagen">sagen wie ich mit einem PHP Script IPs speichern kann, die auf das Script zugreifen ?

    Danke.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. <?
       $ip ="$REMOTE_ADDR"; 
    ?>



    Jo, so geht das. :)

    Beitrag zuletzt geändert: 29.10.2011 17:09:13 von geilerheiler
  4. Autor dieses Themas

    tradingcenter

    tradingcenter hat kostenlosen Webspace.

    Danke fuer deine Antwort!
    Allerdings speichert das die IP nur in einer Variablen, ich will sie aber auch speichern können!
    Also in einer .log Datei wenn moeglich.

    MFG.

    Beitrag zuletzt geändert: 29.10.2011 17:11:09 von tradingcenter
  5. tradingcenter schrieb:
    Danke fuer deine Antwort!
    Allerdings speichert das die IP nur in einer Variablen, ich will sie aber auch speichern können!
    Also in einer .log Datei wenn moeglich.

    MFG.


    Ich kann dir sagen wie du sie in einer DB speicherst.


    $server_verbindung = mysql_connect("hostname", "benutezrname", "passwort");
    $datenbank_auswahl = mysql_select_db("datenbank_name");
    
    $eintragen = mysql_query("INSERT INTO tabelle VALUES ('$ip')");


    Wenn du was nicht verstehst, dann schrieb mich per PN an, ich helf dir gerne.
  6. masterakio1995

    Kostenloser Webspace von masterakio1995

    masterakio1995 hat kostenlosen Webspace.

    So wie es geilerheiler geschrieben hatt wäre es möglich und warscheinlich auch besser als eine .log datei da du so auch ohne probleme einträge löschen kannst etc.
  7. ich würde ja $_SERVER['REMOTE_ADDR'] nehmen


    zum Speichern in Log File ... würde dann auch Datum (Timestamp) dazu Speichern

    (ohne MySQL)
    $ts = time(); 
    $ip = $_SERVER['REMOTE_ADDR']; 
    
    $filename = 'data'/mylogfile.txt';
    
    $handle = fopen($filename,"a");
    $eintrag = $ts.";".$ip."\n"; 
    fwrite($handle,$somecontent);
    fclose($handle);


    und zum auslesen dann
    $filename = 'data'/mylogfile.txt';
    
    $daten = file($filename); 
    foreach($daten as $zeile) { 
    $item = explode(';',$zeile); 
    echo "<br />Zeit: ".date('y-m-d H-i-s',$item[0]); 
    echo "<br />IP: ".$item[1]; 
    }


    so wird die Log-Datei (bzw. die MySQL Tabelle) aber in kurzer Zeit sehr groß,
    weil jeder Aufruf gespeichert wird

    EDIT: ... und bei Zugriff von 2 oder mehr Usern zur gleichen Zeit versagt Datei-Speichern !!!!
    deshalb besser MySQL nehmen, die Beispiele sollen ja nur das Prinzip erklären


    egal ob in Datei oder in MySQL,
    Du solltest mehrfache Aufrufe einer IP (in bestimmten Zeitraum) nicht Speichern
    oder bei mehrfachen Aufrufen einen Zähler hinzufügen, also als weitere Spalte

    bei File kann man z.B. für jeden Tag eine eigene Log-Datei machen
    und Dateien, die älter als z.B. 14 Tage sind, dann wieder löschen
    EDIT: aber von Datei rate ich bei sowas eher ab, wegen gleichzeitiger Zugriffe = Datenverlust

    bei mysql kann man auch Einträge die älter sind als z.B. 14 Tage wieder löschen
    sonst werden das in kurzer Zeit unmengen von Daten

    $abstand = (3600*24*14);  // Abstand 14 Tage 
    $deltime = ($ts -$abstand); 
    
    $loeschen = mysql_query("DELETE FROM tabelle WHERE logtime < $deltime ");


    vorausgesetzt Du hast die Spalte logtime in der Tabelle angelegt und mit dem Timespamp gefüttert

    PS:
    das hier sind alles nur Beispiele und allgemeine Tips, keine Lösungen !!!

    Meine Empfehlung ist auch eher MySQL,
    denn besonders wenn mehrere User gleichzeitig die Seite aufrufen
    dann versagt das Datei-Speichern .... MySQL ist da deutlich "stabiler"

    PS2:
    und wie ist das eigentlich rechtlich mit IP-Adressen Speichern ?
    Stichwort: Vorratsdatenspeicherung ... evtl verschlüsselt Speichern? Maximale Speicher-Zeit? etc?


    Beitrag zuletzt geändert: 29.10.2011 17:54:58 von anlagegeld
  8. Autor dieses Themas

    tradingcenter

    tradingcenter hat kostenlosen Webspace.

    anlagegeld schrieb:
    ich würde ja $_SERVER['REMOTE_ADDR'] nehmen


    zum Speichern in Log File ... würde dann auch Datum (Timestamp) dazu Speichern

    (ohne MySQL)
    $ts = time(); 
    $ip = $_SERVER['REMOTE_ADDR']; 
    
    $filename = 'data'/mylogfile.txt';
    
    $handle = fopen($filename,"a");
    $eintrag = $ts.";".$ip."\n"; 
    fwrite($handle,$somecontent);
    fclose($handle);


    und zum auslesen dann
    $filename = 'data'/mylogfile.txt';
    
    $daten = file($filename); 
    foreach($daten as $zeile) { 
    $item = explode(';',$zeile); 
    echo "<br />Zeit: ".date('y-m-d H-i-s',$item[0]); 
    echo "<br />IP: ".$item[1]; 
    }


    so wird die Log-Datei (bzw. die MySQL Tabelle) aber in kurzer Zeit sehr groß,
    weil jeder Aufruf gespeichert wird

    EDIT: ... und bei Zugriff von 2 oder mehr Usern zur gleichen Zeit versagt Datei-Speichern !!!!
    deshalb besser MySQL nehmen, die Beispiele sollen ja nur das Prinzip erklären


    egal ob in Datei oder in MySQL,
    Du solltest mehrfache Aufrufe einer IP (in bestimmten Zeitraum) nicht Speichern
    oder bei mehrfachen Aufrufen einen Zähler hinzufügen, also als weitere Spalte

    bei File kann man z.B. für jeden Tag eine eigene Log-Datei machen
    und Dateien, die älter als z.B. 14 Tage sind, dann wieder löschen
    EDIT: aber von Datei rate ich bei sowas eher ab, wegen gleichzeitiger Zugriffe = Datenverlust

    bei mysql kann man auch Einträge die älter sind als z.B. 14 Tage wieder löschen
    sonst werden das in kurzer Zeit unmengen von Daten

    $abstand = (3600*24*14);  // Abstand 14 Tage 
    $deltime = ($ts -$abstand); 
    
    $loeschen = mysql_query("DELETE FROM tabelle WHERE logtime < $deltime ");


    vorausgesetzt Du hast die Spalte logtime in der Tabelle angelegt und mit dem Timespamp gefüttert

    PS:
    das hier sind alles nur Beispiele und allgemeine Tips, keine Lösungen !!!

    Meine Empfehlung ist auch eher MySQL,
    denn besonders wenn mehrere User gleichzeitig die Seite aufrufen
    dann versagt das Datei-Speichern .... MySQL ist da deutlich "stabiler"

    PS2:
    und wie ist das eigentlich rechtlich mit IP-Adressen Speichern ?
    Stichwort: Vorratsdatenspeicherung ... evtl verschlüsselt Speichern? Maximale Speicher-Zeit? etc?


    Vielen Dank für deine wundervolle Antwort!
    Eine letzte Frage: Wieso versagt das Datei-speichern via fwrite wenn 2 user aufeinmal drauf gehen ?

    MFG
  9. erstmal sorry, es muss so heissen
    $filename = 'data/mylogfile.txt';


    aber vergiss es IP Counter auf Datei-Basis

    Warum das versagt kann ich auch nicht erklären, aber es versagt !!!
    vielleicht wei bei fopen() zur gleichen Sekunde irgend ein Fehler auftritt ...

    habe selber schon die Erfahrung gemacht, dass aufeinmal die log Datei leer war
    also totaler Datenverlust .... mach es besser gleich mit mySQL ... !!!

    es gibt dazu auch zahlreiche Tutorials
    Google: http://www.google.de/search?q=php+mysql+ip+counter oder ähnliche Suche

  10. fleischhoernchen

    Kostenloser Webspace von fleischhoernchen

    fleischhoernchen hat kostenlosen Webspace.

    Du darfst nach deutschem Recht generell (d.H. es existieren Ausnahmen) übrigens keine vollständigen IP-Adressen speichern.
    Mit einer Datenschutzerklärung (welche du nach TMG anzufertigen hast), kannst du dich nicht über die Rechtsprechung stellen.

    - fleischhoernchen

    Beitrag zuletzt geändert: 29.10.2011 20:03:23 von fleischhoernchen
  11. und wenn man die IPs verschlüsselt speichert,
    so das man sie selbst garnicht mehr entschlüsseln kann ?

    Beispiel:
    $secret_key = 'uE4RgB29oPsTfCi51Hy'; 
    
    $user_ip = md5($secret_key.$_SERVER['REMOTE_ADDR']);


    dann sollte es doch rechtlich OK sein

    dumme Frage:
    wie kann man dann eine bestimmte IP-Adresse aussperren,
    wenn diese z.B. die Webseite zu spammt oder ähnlich unerwünschtes macht ?!
  12. ip-black listen gibt es praktisch in jedem forum oder jeder firewall. da werden die ips dann auch gespeichert. sowohl automatisch als auch manuell. der wesentliche punkt ist, dass die ip A) höchstens 24 h einen nutzen hat, außer es handelt sich um eine feste ip und B) das du nicht unbedingt erforderliche daten glaube 6 monate höchstens speichern darfst.

    wenn die ip's in keinen zusammenhang mit persönlichen daten stehen, wieso sollte man das nicht dürfen.

    in dem du deine ip liste mit der aktuellen ip vergleichst und dann den stream unterbrichst/ignorierst oder einfach nur eine kurze meldung ausgibst.

    if(ip1==ip2)
    {
    echo('access denied');
    }
    else
    {
    echo('kontent');
    }


    blacklisten kannste aber auch über htaccess realisieren.

    Beitrag zuletzt geändert: 29.10.2011 21:09:16 von aero23
  13. Es versagt, weil der Skript gleichzeitig in die selbe Zeile der Datei etwas schreiben will, und dass funktioniert nicht.
  14. fleischhoernchen

    Kostenloser Webspace von fleischhoernchen

    fleischhoernchen hat kostenlosen Webspace.

    aero23 schrieb:
    ip-black listen gibt es praktisch in jedem forum oder jeder firewall. da werden die ips dann auch gespeichert. sowohl automatisch als auch manuell. der wesentliche punkt ist, dass die ip A) höchstens 24 h einen nutzen hat, außer es handelt sich um eine feste ip und B) das du nicht unbedingt erforderliche daten glaube 6 monate höchstens speichern darfst.

    IP-Blacklisten sind eine Ausnahme mit entsprechenden Einschränkungen.
    Nicht unbedingt erforderliche Daten darfst du gar nicht speichern. Die sechsmonatige Speicherfrist gilt nur für Abrechnungszwecke. Für Sicherheits- und Spamrelevantespeicherung gilt wenn eine siebentägige Frist und die dortige Klarspeicherung ist nur im Falle von Identifikation der "Täter" erlaubt.

    Eine Möglichkeit für Blacklists hat anlagegeld genannt. Jedoch muss / sollte der Salt ($secret_key) regelmäßig verändert werden und vorhanden sein, da die Prüfsummen der möglichen IP-Adressen relativ schnell angelegt sind.

    aero23 schrieb:
    wenn die ip's in keinen zusammenhang mit persönlichen daten stehen, wieso sollte man das nicht dürfen.

    Auch dynamische IP-Adressen sind durch den Provider für eine Weile zuordenbar. Ansonsten dürfte es Abnahnanwälten nicht möglich sein entsprechende Schreiben bzgl. Urheberrechtsverstößen zu verfassen. Gerichtsurteile haben bestätigt, dass IPs personenbezogene Daten sind.

    - fleischhoernchen

    Beitrag zuletzt geändert: 30.10.2011 12:47:14 von fleischhoernchen
  15. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Personenbezogen oder auch nicht: In einem Unternehmen gibt es normalerweise ein internes Netzwerk das mit dem Internet verbunden ist. Alle die über dieses interne Netz deine Seite ansurfen haben aus Sicht deiner Seite die gleiche IP-Adresse!
  16. @fleischhoernchen: Bei solchen juristischen Aussagen ist es sehr empfehlenswert eine Referenz anzugeben. Zumindest glaube ich, dass deine Darstellung so nicht ganz richtig sein kann.
  17. Hallo,

    bestimmte IPs kann man auch über die .htaccess ausschließen:
    Deny from 192.168.0.1


    Till
  18. zu dieser 'riesen'diskussion noch ein kleiner beitrag:
    ungeachtet der rechtlichen lage (das ist seine sache) eine kleine erleichterung bei der behandlung von ip adressen durch mysql sind die 2 funktionen inet_aton() und inet_ntoa().

    der sinn von inet_aton ist, dass eine Address To Number (aton) umwandlung stattfindet, wobei Number natürlich integer ist. wozu das gut sei? notürlich von richtigen sortieren von ip-s (wenn erwünscht). (sinngemäß wandelt inet_ntoa [Number To Address] integer nach ip.)
  19. Zum Thema rechtliche Grundlage des Verbotes:

    http://www.daten-speicherung.de/index.php/bundesjustizministerium-surfprotokollierung-durch-webseitenbetreiber-illegal/

    Dort steht das erläutert und auf dieser Seite ist auch das offizielle Schreiben des Bundesjustizministeriums
  20. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!