Gå til innhold

IP-notering på websiden


Anbefalte innlegg

Finnes det ferdig php-skript som noterer ned alle ip-adressene som har vært inne på en webside? jeg skulle gjerne hatt en som noterer ned alle ip-adressene som har vært på besøk på sia mi. gjerne slik at det noterer ned ipadresser for hver dag... en liste for hver dag hvis dere sjønner ;)

Lenke til kommentar
Videoannonse
Annonse
Hva er det du planlegger her?

 

planlegger å lagre ipene for å se hvor mange unike besøkende jeg får per dag. har en teller nå som teller unike besøkende, men har fått en følele for at denne ikke stemmer. så jeg har tenkt å logge alle ipene for å sjekke om den telleren stemmer... *dårlig forklart*

Lenke til kommentar

Her har du en teller jeg har laget..

Teller både totalt unike besøkende og unike besøkende idag :)

 

<?php

$ip = $_SERVER['REMOTE_ADDR'];
$dato = strftime("%Y-%m-%d");

//Besøkende Idag
$unike_idag = @mysql_query("SELECT * FROM  besøkende WHERE dato='$dato'");
$besøkende_idag = @mysql_fetch_array($unike_idag);
//Besøkende Idag Slutt


$count = @mysql_query("SELECT * FROM besøkende");

if (@mysql_num_rows($count) <= 0)
{ $besøkende = ("1"); }

else
{ $besøkende = @mysql_num_rows($count); }

$ips = @mysql_query("SELECT * FROM `besøkende` WHERE ip = '$ip'");

if (@mysql_num_rows($ips) <= 0)
{@mysql_query("INSERT INTO `besøkende` (ip, dato) VALUES ('$ip', '$dato')"); }

?>

 

Ja.. Tror dette skal funke :)

 

Så bare legger du til:

echo ("Unike Besøkende: $besøkende<br>Unike Besøkende Idag: $besøkende_idag");

 

Tror dette skal funke ja :)

Lenke til kommentar
Mellet, kan du fikse sånn at den logger antall unike besøkende i et txt eller html-dokument?

Hmm, har aldri holdt på med flatfil.

Så kan ikke det.

Har holdt meg til Database basert.

 

 

Kansje noen andre her kan gjøre den om til en flatfil basert teller?

Endret av Mellet
Lenke til kommentar

Fikset det for deg, jeg. :)

 

<?php

// DENNE FILEN SKRIVER UT ANTALL BESØKENDE. Ressurskrevende, så ikke bruk denne til annet enn administrative formål.

$ip = $_SERVER['REMOTE_ADDR'];
$dato = strftime("%Y%m%d");

//Besøkende i dag
$file = file("$dato.txt");
$unike = count($file);
//Besøkende i dag slutt

echo "Det har vært $unike unike besøkende på websiden i dag.";

?>

 

<?php

// Denne snutten lagrer en ny IP (besøkende) i fila. Brukes for å telle opp besøkende. Ineffektiv(!), bør definitivt vurdere caching/database hvis siden har flere enn et par hundre besøkende om dagen.

$ip = $_SERVER["REMOTE_ADDR"];
$tid = time();

$filnavn = date("Ymd"); 

$linje = $tid."\t".$ip."\r\n";

$file = file("$filnavn.txt");
$already_counted = false;
foreach($file as $line)
{
if($linje == $line){$already_counted = true;break;}
if(!$already_counted)
{
$fp = fopen("$filnavn.txt", "a");
fwrite($fp, $linje);
fclose($fp);
}

?>

 

Uff, for en fæl og rotete kode jeg mikset sammen der. Noen som melder seg frivillig til å rydde opp? :p

 

 

Edit: om du beslutter å heller bruke en databasebasert teller; ikke gå for Mellet sin. Den er ikke på langt nær så effektiv eller velskrevet som den kunne vært. Spør heller i denne tråden, så kan jeg sette sammen noe nytt til deg.

Endret av Lokaltog
Lenke til kommentar
Edit: om du beslutter å heller bruke en databasebasert teller; ikke gå for Mellet sin. Den er ikke på langt nær så effektiv eller velskrevet som den kunne vært. Spør heller i denne tråden, så kan jeg sette sammen noe nytt til deg.

Hvis du har tid og lyst Lokaltog, kan du ikke renskrive Mellets kode likevel? Er gøy å se hvor rent det kan bli :)

Lenke til kommentar

Satte meg ned i Zend og rablet kjapt ned et par filer her.

 

http://www.lokaltog.net/stuff/counter.show.phps

http://www.lokaltog.net/stuff/counter.cache.phps

 

Edit: Ser at tabulatorene blir tolket litt forskjellig av PHP og Zend. Det så opprinnelig ganske mye bedre ut i Zend, men PHP klarte å ødelegge det. Nåvel, regner med at scriptet funker iallefall. :)

Endret av Lokaltog
Lenke til kommentar

Lurer litt på å bruke noe ala dette i et auth-access login-script. Nå har jeg denne koden i login:

 

<?php
include('config.php')
$ip = $_SERVER["REMOTE_ADDR"];
$ip = @mysql_query("INSERT INTO ip-table (ip, date) VALUES ('$ip', '$date')")or die(mysql_error());
?>

 

Så hvordan får jeg denne infoen til å skjekkes på index.php? Sliter litt. Er ikke så flink i php. :blush:

Derfor hadde det vært koselig om noen kunne laget en spørring til databasen for meg.

Er ikke sikker på at den første koden funker engang. :whistle:

*Øvelse gjør mester*

Endret av ett
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...