Forum
Tipps
News
Menu-Icon

Phpscript - Ip

Hallo alle zusammen!
Ich möchte zu meiner Homepage ein Phpscript hinzufügen, dass die Ip des Besuchers in einer Textdatei speichert, am besten noch mit Datum und Uhrzeit.
Meine Fähigkeiten in der Phpprogrammierung reichen dafür leider nicht aus. ;)
Ich habe ein paar Anfänge:

<?php
$ipadresse ="$REMOTE_ADDR";
$result = shell_exec("echo Deine IP Adresse ist $ipadresse");
print($result."<br>");
?>

weiß aber nicht ob das weiterhilft. Allerdings soll die Ip eben NICHT dem Besucher angezeigt werden.


Antworten zu Phpscript - Ip:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

probier mal:

<?php
if(getenv("HTTP_X_FORWARDED_FOR")){
$ip getenv("HTTP_X_FORWARDED_FOR");
}
else {
$ip getenv("REMOTE_ADDR");
}
$textdateitext=$ip."|".date("H:i:s - d.m.Y")."\r\n";
$textdatei=fopen("datei.txt","a");
fwrite($textdatei,$textdateitext);
fclose($textdatei);
?>


is indirekt murks, aber könnte dir fast schon helfen.
denk halt auch dran dass die unendlich zumüllt, für dich als "mensch" kaum zu lesen ist, bzw. arg unübersichtlich, von auswertung ganz zu schweigen. (warum keine csv oder gar sql?)
logischerweise noch chmod und den genauen pfad zur textdatei beachten.
Da hast halt auch vorrangig den evtl. proxy, die angebliche ip steht sonst immer in $_SERVER['REMOTE_ADDR']
« Letzte Änderung: 01.11.08, 09:53:50 von strough »

 

Zitat
(warum keine csv oder gar sql?)

was gibt es denn da für scripts? habe schon fertige sachen probiert, aber eigentlich will ich gar kein menü etc., sondern nur dass die ip (amn besten mit datum und uhrzeit) als liste in eine textdatei gespeichert wird.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

was gibt es denn da für scripts? habe schon fertige sachen probiert, aber eigentlich will ich gar kein menü etc.,

Was hat denn eine Datenbankverbindung mit einem Menü zu tun?

Übrigens ist eine CSV-Datei auch nur eine Textdatei, nur eben in einer definierten Form. Die lässt sich mit dem Skript von strough auch erstellen, musst nur den Delimiter in der Textzeile ersetzen. Besser: mal fputcsv() anschauen ;)

greez 8)
JoSsiF

 

Zitat
Was hat denn eine Datenbankverbindung mit einem Menü zu tun?

Nichts. 8)
War anders gemeint, vll kam das nicht so rüber wie ich wollte ;)
Ich meinte, dass ich kein "fertiges" Script haben möchte, also mit nem Adminmenü etc., so dass ich auch einigermaßen nachvollziehen kann wie was funktioniert.

Das Script von strough reicht für meine Bedürfnisse, danke. Aber als csv ist es auch nicht viel übersichtlicher, nur dass es jetzt eben Excel öffnet ;)
Wie krieg ich das übersichtlicher?
Und könnte jemand der Php beherrscht das Script von strough  noch um eine zusätzliche funktion erweitern, so dass auch der Zeitraum, in dem der Besucher auf der Seite war vermerkt wird?
Vielen Dank ;)

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Wie krieg ich das übersichtlicher?

Kommt darauf an, was du unter "übersichtlich" verstehst ;)

Und könnte jemand der Php beherrscht das Script von strough  noch um eine zusätzliche funktion erweitern, so dass auch der Zeitraum, in dem der Besucher auf der Seite war vermerkt wird?

"Zeitraum" wäre die Zeit vom ersten bis zum letzten Klick. Also jeden Klick loggen und dann die höchste und niedrigste Zeitangabe gegenrechnen. Geht aber mit einer DB besser. Das solltest du aber zuerst selber versuchen, alles andere entspricht nicht dem Prinzip eines Forums :)

greez 8)
JoSsiF

Übersichtlicher im Sinne von (Bild)
Wie man sieht, ist die Ip mit Datum etc. in einer einzigen Zelle, aber es wäre doch übersichtlicher, wenn jeder Wert in einer einzelnen Spalte wäre.
Kann man den Zeitraum nicht auch als "Zeitraum" definieren, in dem das Dokument in der Browserzeile aufgerufen ist?
 

Zitat
Das solltest du aber zuerst selber versuchen, alles andere entspricht nicht dem Prinzip eines Forums Smiley
Natürlich. ABER: Ich kann Phpscripte in meine Homepage "einbauen";), und wenn ich ein fertiges vor mir liegen habe weiß ich so ungefähr, was was bedeutet. Selber Scripts schreiben, so weit bin ich noch nicht. (Fehlendes Wissen über Befehle und Syntax).
Ich erwarte keine fertige Lösung, aber in diesem Fall muss man das Script wohl nur ein bisschen erweitern. Eine Datenbank wäre auch eine Alternative, da bräuchte ich aber auch nen kleinen Schubs in die richtige Richtung. ;)
Also dann  :D

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Wie man sieht, ist die Ip mit Datum etc. in einer einzigen Zelle, aber es wäre doch übersichtlicher, wenn jeder Wert in einer einzelnen Spalte wäre.

Schau mal weiter oben, da hatte ich mal fputcsv() erwähnt. Ein Blick in die PHP-Doku zeigt dir die Verwendung - nur keine falsche Scheu ;)

Kann man den Zeitraum nicht auch als "Zeitraum" definieren, in dem das Dokument in der Browserzeile aufgerufen ist?

Nein. HTTP ist ein zustandsloses Protokoll, d.h. es gibt einen Request vom Browser und eine Antwort vom Server. Das war's, danach kennen sich die beiden nicht mehr. Deswegen muss jeder Klick irgendwie festgehalten werden, weil du ja vorher nicht ermitteln kannst, wann der Nutzer tatsächlich die Seite verlässt (andere URL, Browser schließen, ...).

Eine Datenbank wäre auch eine Alternative, da bräuchte ich aber auch nen kleinen Schubs in die richtige Richtung. ;)

Vielleicht hilft das für den Einstieg? http://www.schattenbaum.net/php/

greez 8)
JoSsiF

Also, ich habe mich daran versucht, bisher blieb die csv Datei allerdings leer.

<?php
if(getenv("HTTP_X_FORWARDED_FOR")){
$ip = getenv("HTTP_X_FORWARDED_FOR");
}
else {
$ip = getenv("REMOTE_ADDR");
}
$textdatei = fopen('ip.csv', "a");

fputcsv($textdatei, split(',', $line));

$textdatei=fopen("ip.csv","a");
fwrite($textdatei,$ip);
fclose($textdatei);
?>
Dateizugriffsrechte bei ip.csv sind 777.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Und wo kommt $line her? Aus dem Beispiel, ja, ich weiß ;D ....und in deinem Skript?

<?php

$list = array (
    'aaa,bbb,ccc,dddd',
    '123,456,789',
    '"aaa","bbb"'
);

$fp = fopen('file.csv', 'w');

foreach ($list as $line) {
    fputcsv($fp, split(',', $line));
}

fclose($fp);
?>
Ich haben diesen Scriptschnippsel gefunden. (google=> fputcsv)
ich möchte natürlich keinen Array, aber so ist die Tabelle wenigstens schon mal in Zeilen gegliedert (bzw jeder Wert in einer Zelle, untereinander).Allerdings noch nicht in Spalten.Ich denke, genug bemüht hab ich mich;) jetzt wäre es ganz nett wenn mir jemand helfen würde.;)


« CSS ProblemeHTML's veröffentlichen »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
IP-Adresse
Die IP-Adresse ist eine Adresse in einem Computernetzwerk, das auf dem Internet-Protokoll (IP) basiert. Sie besteht aus vier Zahlenblöcken mit Zahlen von 0 bis 255, ...

MAC-Adresse
Eine Media-Access-Control-Adresse (MAC-Adresse) ist die Hardware-Adresse jedes einzelnen Netzwerkadapters. Jede Netzwerkkarte ist mit einer zwölfstelligen Bezeichnun...

Quellcode
Ein Quellcode, auch als Quelltext bekannt, bezeichnet den unkompilierten Programm-Code einer Software. Quell- oder Programm-Code ist der auch für Menschen lesbare Co...