Millanen kävijälaskuri teistä olisi paras siis rakenteeltaa et millaset taulut lois ja sarakkeet tauluihin?
No yksinkertainen syntyy laatimalla taulun jossa on yksi (1) int joka kuvaa käyttäjien määrää. Sitte yla.php:ssäs on jutsku joka lisäilee sitä joka kerta ku ladataan yhdellä (1). Tietenkin jos alat ylihienostella niin teet semmosen että tunti pitää oottaa samasta iipparista tjsp.
Ensin luo käyttäjälle tunniste esimerkiksi IP:n ja jonkin muun tiedon perusteella niin, että eivät mene sekaisin edes saman nettiyhteyden käyttäjät, jos mahdollista. Tarvitset kaksisarakkeisen taulun: tunniste ja aika. Joka kerta voit ajaa ensiksi sellaisen kyselyn, joka pudottaa kannasta kaikki ne, joilla aika on pienempi kuin X ennen nykyhetkeä. X siis kuvaa pisintä idle-aikaa, joka sallitaan saman käyntikerran aikana. Seuraavaksi katso, onko kannassa jo tämä tunniste. Jos on, päivitä siihen liittyvä aikaleima, ja jos ei ole, lisää se ja kasvata kävijämäärää yhdellä.
Itse olen pitänyt tälläista taulua kotskaporttaaleissani:
CREATE TABLE `tilastot` ( `id` int(11) NOT NULL auto_increment, `ip` varchar(4) NOT NULL default '', `last_load` datetime default NULL, `first_load` datetime default NULL, `agent` varchar(100) default NULL, `referer` varchar(255) default NULL, `headword` varchar(30) default NULL, `domain` varchar(20) default NULL, `bot` tinyint(1) default '0', `lataukset` int(11) default NULL, PRIMARY KEY (`id`), KEY `ip` (`ip`), KEY `robot` (`robot`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1
Lisäksi pidän kirjaa mitä sivuja ollaan ladattu. Jos sivuja ei ole paljon, ne voi ympätä tuohon tauluun sarakkeiksi. Tuo on siis vahvasti indeksoitu, koska sinne ei lisätä rivejä joka sivunlatauksella ja tuolta voi hakea reaaliaikaista statistiikkaan. Eli idea on, että ensin tarkastetaan löytyykö ip:tä vastaava rivi, jos ei lisätään se sinne, jos kyllä, päivitetään rivin lataukset-kenttää.
ajv kirjoitti:
Itse olen pitänyt tälläista taulua kotskaporttaaleissani:
[– –]
Lisäksi pidän kirjaa mitä sivuja ollaan ladattu. Jos sivuja ei ole paljon, ne voi ympätä tuohon tauluun sarakkeiksi. Tuo on siis vahvasti indeksoitu, koska sinne ei lisätä rivejä joka sivunlatauksella ja tuolta voi hakea reaaliaikaista statistiikkaan. Eli idea on, että ensin tarkastetaan löytyykö ip:tä vastaava rivi, jos ei lisätään se sinne, jos kyllä, päivitetään rivin lataukset-kenttää.
Erittäin saman tyylinen idea kuin omassani, jonka rakentelin sivuilleni. Mutta tuosta taulusta sain hyvää kehitys ideaa. ;)
Ah, yritin muutella noita sarakkeiden nimiä lennosta vähän loogisemmiksi ennen tänne pasteemista. KEY `bot` (`bot`). Eli onko kyseessä botti vai oikea selailija. Koodi on kirjotettu joskus 4 vuotta sitte, en kyllä kehtaa sitä tänne pastee :)
$tunnistus_aika = 7200; $query = mysql_query("SELECT * FROM counter",$yhteys) or die("Kysely ei onnistunut");;
Mä tein tollasen kyselyn ja siinä on sarakkeet first_load ja last_load niin miten saisin WHERE lausekkeeseen siten että se hakisi kaikki ne rivit jossa last_load - last_load + tunnistus_aika siten että tämän hetkinen aika sijoittuisi noiden väliin?
last_load ja first_load on datetime tyyppiä
Onko mitään muuta tietoa mikä erottajaa selaajan toisistaan muuta kuin ip osoite vaikka sekään ei erota ihan kaikkia selaajia toisistaan?
Jos ei keksit maistu, yksi tapa on käyttää eri tietojen yhdistelmiä. Näitä voisi olla esimerkiksi ip, käyttöjärjestelmä, selain (ja versio) jne.
haen käyttäjän ip:n ja vertaan sitä ja myös kielen, kannattaako sitä verrata?
Ei oikein, nimittäin ip numerosta selviää valtio ja usein jopa kaupunki.
Esim. ip:t jotka alkaa 62.xx.xx.xx ovat suomalaisille operaattoreille.
Kävijälaskurin eräs hyvä juttu on referer, mistä käyttäjä saapui sivullesi.
esim googlesta tulleet käyttäjät: näet millä hakusanoilla on tultu.
aika käyttäjän ip
2007.12.19 - 09.46.54 - 146.81.200.62 - 146.81.200.62 -
google haku helena murtonen kansio sivu
http://www.google.fi/search?hl=fi&q=helena murtonen&meta= - k5 - etusivu
Ja googleen tämä haku, löytyi sijalta 10.
md5($_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_X_FORWARDED_FOR'] . $_SERVER['USER_AGENT']);
Parempi kuin pelkkä ip, mutta ei edelleenkään läheskään varma. Yksilöllistää kyllä ainakin meidän puljun kaikki verkon käyttäjät ($_SERVER['HTTP_X_FORWARDED_FOR']). Riittää kyllä IMO kävijälaskurin tunnisteeksi.
peg kirjoitti:
--clip--
Esim. ip:t jotka alkaa 62.xx.xx.xx ovat suomalaisille operaattoreille.
--clip--
Tämä perustuu mihin? Operaattorina haluaisin tämän kuulla mielelläni sillä tämä on uutta tietoa minulle.
-W-
Tietoa ip numeroista http://fi.wikipedia.org/wiki/IP-osoite
ja lista Suomeen varatuista ip numeroista http://www.ipdeny.com/ipblocks/data/countries/
peg kirjoitti:
Tietoa ip numeroista http://fi.wikipedia.org/wiki/IP-osoite
ja lista Suomeen varatuista ip numeroista http://www.ipdeny.com/ipblocks/data/countries/
fi.zone
Pitäisikö tuosta päätellä sitten sitä, että KAIKKI 62.x.x.x sarjan IP-osoitteet on varattu suomalaisille? Esim. meidän verkot ovat tuossa listassa kolmessa eri luokassa ja olemme puhtaasti suomalaisia operaattoreita eivätkä verkkomme IP-luokat ole tuossa mainitsemassasi sarjassa.
Tuollaisesta listasta ei kannata alkaa vetelemään mitään hätäisiä johtopäätöksiä, koska 62.xxx.xxx.xxx luokassa on yhteensä 65536 eri luokkaa ja vaikka näitä jaettaisiin 2048 osoitteen blokeissa (joka on minimi), tulee siitä yhteensä 32 eri luokkaa. Tämä on Suomeen ehkä hieman liian paljon... Tuossa koko 62.0.0.0 - 62.255.255.255 sarjassahan on noin 16.7M IP-osoitetta, Suomessa tuskin on noin montaa IP-laitetta???
Suositus: lue RIPEn sivuja jotta pääset perille hieman paremmin asioista. Noin hätäiset johtopäätökset asioista ja niiden esittäminen "totuutena" voi johtaa vääriin johtopäätöksiin. Väitteesi ei pidä nimittäin paikkaansa. Voit todeta sen jo helposti sillä, että esim. 62.1.0.0 - 61.1.3.255 on varattu kreikkalaiselle taholle jolla ei ole mitään tekemistä Suomen kanssa. Ja sitten voi siitä eteenpäin selata kyseisen luokan IP-osoitteita ja alkaa tekemään johtopäätöksiä.
Siinä mielessä olet kyllä jossain määrin oikeassa, että kyseinen luokka on varattu jollekin maalle, mutta kysymys kuuluu, että onko EU maa?
-W-
Wizard, käänsit asian vähän toisinpäin. Kirjoitin "ip numerosta selviää valtio ja usein jopa kaupunki". esimerkki 62.xx.xx.xx oli tarkoitettu hahmottamaan
asiaa.
peg kirjoitti:
Esim. ip:t jotka alkaa 62.xx.xx.xx ovat suomalaisille operaattoreille.
Kyllä minä ainakinkin tuon ymmärsin aivan samoin kuten Wizard. Ei kyllä mennyt omasta korvien väliisä sijaitsevasta filtteristä läpi, mutta en jaksanut alkaa väittämään vastaan, kun ei itellä ollut parempaa tietoa.
Noista sun väitteistä peg muuten puheenollen, jokohan se google olisi löytänyt sen ohjelmointiputka.com-domainin alla piilossa olevan tiedoston?
https://www.ohjelmointiputka.net/keskustelu/
Antti voisi vastailla onko tiedostoa ladattu.
peg kirjoitti:
Wizard, käänsit asian vähän toisinpäin. Kirjoitin "ip numerosta selviää valtio ja usein jopa kaupunki". esimerkki 62.xx.xx.xx oli tarkoitettu hahmottamaan
asiaa.
Itse asiassa ei selviä välttämättä. AS -numero voi olla käytössä esim. norjalaisella operaattorilla joka käyttää sitä globalisti Ruotsissa sekä Suomessa.
Esimerkkinä otettakoon norjalainen iso operaattorien operaattori Telenor jonka IP-osoitteita käyttämällä palvelin tunnistetaan Norjassa sijaitsevaksi VAIKKA palvelin olisi Suomessa Espoossa tai Helsingissä tai Ruotsissa Tukholmassa jne.
Väitteesi EI SIIS PIDÄ aukottomasti paikkaansa, väitteesi toki on suuntaa antava, mutta tuohon ei todellakaan kannata luottaa sokeasti.
Totuus on se, että IP -osoitteesta selviää AS-numero ja sen perusteella saadaan selville, että kenelle kyseinen AS-numero kuuluu (kuka operaattori hallinnoi sitä). Tämän jälkeen vain yksin ainoastaan operaattori tietää missä kyseinen IP-osoite on käytössä, kaikki muu on suuntaa antavaa.
-W-
mulla käy sivulla päivittäin ihmisiä ja olen tarkkaillu et yhestä ip:stä on käytä paljon enemmän kun muista, voiko se olla joku spämmi robotti tai joku?
s0n joku innokas fani. http://whois.sc/<IP>
en usko mitä tuolt whoissist nään
Ku mul on viel sillee et se kirjottaa aina ajan koska oot tullu ja koska oot aina uudestaa ladannu sivua ja monta kertaa oot tietyn ajan sisäl ladannu etusivuu niin ihmettelen et miten se voi ladata samas ajas etusivua kolmeki kertaa
Voiko se kävijä olla joku spämmi robotti?
JyKKemus kirjoitti:
en usko mitä tuolt whoissist nään
Ku mul on viel sillee et se kirjottaa aina ajan koska oot tullu ja koska oot aina uudestaa ladannu sivua ja monta kertaa oot tietyn ajan sisäl ladannu etusivuu niin ihmettelen et miten se voi ladata samas ajas etusivua kolmeki kertaa
IP:n takana voi olla monta konetta. Esimerkiksi vantaan koulujen kaikilla koneilla on Internettiin yhteinen IP-osoite.
vähän oudolta vaan kuullostaa se että kun laskurini ottaa ajan koska saavuit sivulle ja jos painat jotain linkkiä sivullani niin se ottaa uuden ajan että laskuri tietää koska olet viimeksi ollut täällä ja jos menet uudestaan ns. etusivulle niin laskuri muuttaa viimeksi ollutta aikaa ja lisää latauksiin numeron 2 koska olet toista kertaa etusivulla nin ihmettelen miten samasta ip:stä ladataan etusivua täsmälleen samassa ajassa 2-4 kertaa
nyt laitoin että se poimii agentti tiedot käyttäjiltä ja se "outo" käyttäjä antaa agentti nimeksi nettiosoitteen vaikka sen pitäisi antaa selaimen tiedot, miten voi olla mahdollista että se antaa netti osoitteen?
Agentin tulostan näin:
$_SERVER['HTTP_USER_AGENT'];
<?php ini_set( 'user_agent', 'https://www.ohjelmointiputka.net/' ); file_get_contents( 'http://mundomain.com/' ); ?>
Ts. user-agentti on ihan käyttäjän muokattavissa, itelläkin pyörii Fx:ssä Modify Headers -lisäosa ja user-agenttina on CHUCK NORRIS BROWSER.
Uskaltaako kysellä miten on ohjelmointiputkan kävijälaskuri tehty?
Itselläni on ainakin sellainen, että se tallentaa ip:n, päivän, kuukauden ja vuoden, johon tulee automaattisesti id-numero. Näisä sitten sql-lausetta distinctillä maustettuna saadaan kävijät päivittäin, kuukausittain ja vuosittain helposti.
JyKKemus kirjoitti:
Uskaltaako kysellä miten on ohjelmointiputkan kävijälaskuri tehty?
Arvaan: varsin purkasti ^_^;;
Onko täällä jossain kävijälaskuri? :)
Palvelimen lokitiedostoista luodaan kävijätilastot AWStats-ohjelmalla, mutta minä en ole laatinut mitään lisäjärjestelmiä kävijämäärien seuraamiseen.
Mistä tietää onko kävijä botti?
User-Agent sen yleensä kertoo. En sitten tiedä, löytyykö tunnistamiselle jotain yleispätevää tapaa.
peg kirjoitti:
Esim. ip:t jotka alkaa 62.xx.xx.xx ovat suomalaisille operaattoreille.
Kyllä minäkin käsitin tämän ihan niinkuin muutkin ja meinasin vielä lankaan mennä. Ihan piti tarkistaa kävijätiedot laskurista, että mitä sinne on pukannut.
Aihe on jo aika vanha, joten et voi enää vastata siihen.