DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   PHP (http://www.devprotalk.com/forumdisplay.php?f=9)
-   -   IP2Country (http://www.devprotalk.com/showthread.php?t=365)

mega023 17. 11. 2005. 17:52

IP2Country
 
OK

Treba mi IP2Country, neka free verzija... odlucio sam se za MaxMind Free (http://www.maxmind.com/app/geoip_country) iz prostog razloga sto redovno izbacuju update-ove (svakog meseca) a i free verzija je prilicno tacna 97% (ako je za dz i to je dosta)...

E sad ne bi hteo da cuvam celu bazu (3.8mb) u mysql-u jer mislim da bi to usporilo server (imam bas dosta poseta...), nego sam mislio da preko njihovog Pure PHP modula (http://www.maxmind.com/app/php) ucitam IP2country bazu u memoriju iz fajla (fajl je oko 800kb sto je manje od 3.8mb mysql-a) i da onda pretrazujem bazu.

Probao sam da to napisem ali mi ne ide...
Radi iz mysql-a ali ne radi iz fajla
Ako neko ima iskustva sa ovim cudom neka pogleda http://www.maxmind.com/app/php i primere na strani http://www.maxmind.com/download/geoip/api/php/
i neka proba da napise jednostavnu skriptu koja ce vracati rezultate iz fajla, jer meni jednostavno ne radi ali ni ne prijavljuje nikakvu gresku!

evo mala pomoc
Kôd:

geoip_load_shared_mem("/usr/local/share/GeoIP/GeoIP.dat");
$gi = geoip_open("/usr/local/share/GeoIP/GeoIP.dat",GEOIP_SHARED_MEMORY);



Cela ova stvar ce sluziti za serviranje reklama na sajtu, koji ima 3 reklame po strani i oko 100.000 ucitavanja strane na dan (matematika kaze da je to na dan oko 300.000 trazenja IP adrese na dan). Hocu samo da targetujem odredjene reklame na odredjene zemlje. Mozda budem cuvao ime zemlje u cooki-ju da ne bi morao onim koji dolaze opet da kopa trazi zemlju bez potrebe ...

Probao sam da koristim phpadsnew (www.phpadsnew.com) softwer koji je stvarno odlican, ali mislim da je i suvise robustan i pravi mi velik load na serveru pa hocu da napisem jedan jednostavan programcic koji ce da izbacuje reklame.


Uskoro treba da uzmem novi server samo za taj sajt
bice neki Dual Xeon 3,0 sa 1-2 GB rama i SCSI hdd-ovima
pa bi trebalo da to nosi phpadsnew bez problema, ali do tada ima jos 20ak dana... treba da napisem to do tad kako bi mi sadasnji server izdrzao.


Ako neko moze da pomogne neka mi se javi na PM.

hvala vam svima!

bluesman 17. 11. 2005. 18:45

Ne znam zašto imaš problem sa ubacivanjem cele tabele u mysql, ne opterećuje ti server veličina tabele nego kako manipulišeš sa njom. Ja imam kod mene celu bazu i sve radi prilično brzo.

Mislim da je čak sporuiji način na koji ti želiš to da uradiš.

Za phpAds se slažem. Odličan je ali je i meni pravio preveliki load, pa sam napravio najjednostavnije moguće rešenje....

$ads = array ( .... .)

$display = array_rand()

Ne može jednostavnije :)

mega023 17. 11. 2005. 20:01

Citat:

Originalno napisao bluesman
Ne znam zašto imaš problem sa ubacivanjem cele tabele u mysql, ne opterećuje ti server veličina tabele nego kako manipulišeš sa njom. Ja imam kod mene celu bazu i sve radi prilično brzo.

Mislim da je čak sporuiji način na koji ti želiš to da uradiš.

Za phpAds se slažem. Odličan je ali je i meni pravio preveliki load, pa sam napravio najjednostavnije moguće rešenje....

$ads = array ( .... .)

$display = array_rand()

Ne može jednostavnije :)


Da da... i ja imam slicno (malo sporije) resenje ali su u array-u imena falova i onda radi include fajla koji mi treba... ali je lakse za menjanje reklama....

Kad malo bolje razmislim, najverovatnije cu ipak ubaciti IP2Country bazu u mysql... jedino sto cu morati da napisem to da cuva zemlju u cookie-e da ne mora bez potrebe da trazi po bazi ako je korisnik koji se vraca... (imam dosta poseta od istih korisnika)

Neznam da li da koristim pconnect ili samo connect za ovako nesto?

bluesman 17. 11. 2005. 21:20

Čekaj, jel' imaš ti neki login?
Ako imaš onda čuvaj u bazi korisnika njegov country, a proveri IP2CTRY samo ako nema setovan COOKIE. Znači, IP2C query se izvrši samo prvi put (ako ne briše cookie) i nemaš nikakvih problema.

Jedino što sam ja provalio je da su podaci neprecizni naročito za ove naše novije provajdere: ADSL, Cable, Wireless... ali mislim da možeš slobodno da stavi da je odavde čim ti IP2C vrati "nepoznato" :)

dinke 17. 11. 2005. 21:45

Tako i ja radim. Dakle kreiras tabelu tipa:

Kôd:

create table geoip(
id int unsigned primary key not null auto_increment,
ip_address varchar(15) not null,
country varchar(255) not null,
country_code char(2) not null,
region char(2) not null,
city varchar(255) not null,
postal_code varchar(6) not null,
latitude float(10,4) not null,
longitude float(10,4) not null,
dma_code tinyint unsigned not null,
area_code tinyint unsigned not null);

i vozi :)

mega023 17. 11. 2005. 22:11

Citat:

Originalno napisao bluesman
Čekaj, jel' imaš ti neki login?
Ako imaš onda čuvaj u bazi korisnika njegov country, a proveri IP2CTRY samo ako nema setovan COOKIE. Znači, IP2C query se izvrši samo prvi put (ako ne briše cookie) i nemaš nikakvih problema.

Jedino što sam ja provalio je da su podaci neprecizni naročito za ove naše novije provajdere: ADSL, Cable, Wireless... ali mislim da možeš slobodno da stavi da je odavde čim ti IP2C vrati "nepoznato" :)


nemam bazu korisnika...

marinowski 18. 11. 2005. 05:05

Ako i nemas bazu korisnika, polako je vremenom kreiras. Dobro je cuvati informacije o korisnicima. Vise ces ustedeti na taj nacin, kesirajuci ono sto si vec odredio, nego na menjanju GeoIP MySQL <-> eksterni file. Naravno, ovo ne vredi ako ti je sajt takav da posetioc dodje jednom i nikada vise :)

Za nase uslove GeoIP nije bas najtacniji. Najtacniji je za Ameriku, naravno. Mi ga koristimo (placenu verziju, hehe) na odredjivanju iz koje je zemlje dosao posetilac, posto su razlicite cene u razlicitim zemljama. Sa dodatnim proverama (npr. podaci popunjeni tokom registracije) je sasvim OK. Jednom-dva puta je bilo problema kada neka firma iz SAD dovuce svoj IP opseg u UK, ali to je stvarno bilo jednom dva puta.

Probao sam koristiti GeoIP na nivou grada i organizacije (kupio sam bazu za Madjarsku), ali tu je situacija bila mnogo sarenija, mnogo je cesce gresio nego sto sam ocekivao, pa je ostalo na nivou testiranja.

mega023 18. 11. 2005. 08:32

Citat:

Originalno napisao zigor
Ako i nemas bazu korisnika, polako je vremenom kreiras. Dobro je cuvati informacije o korisnicima. Vise ces ustedeti na taj nacin, kesirajuci ono sto si vec odredio, nego na menjanju GeoIP MySQL <-> eksterni file. Naravno, ovo ne vredi ako ti je sajt takav da posetioc dodje jednom i nikada vise :)

Za nase uslove GeoIP nije bas najtacniji. Najtacniji je za Ameriku, naravno. Mi ga koristimo (placenu verziju, hehe) na odredjivanju iz koje je zemlje dosao posetilac, posto su razlicite cene u razlicitim zemljama. Sa dodatnim proverama (npr. podaci popunjeni tokom registracije) je sasvim OK. Jednom-dva puta je bilo problema kada neka firma iz SAD dovuce svoj IP opseg u UK, ali to je stvarno bilo jednom dva puta.

Probao sam koristiti GeoIP na nivou grada i organizacije (kupio sam bazu za Madjarsku), ali tu je situacija bila mnogo sarenija, mnogo je cesce gresio nego sto sam ocekivao, pa je ostalo na nivou testiranja.

meni i treba IP2Country za US i EU
jer mi je najvise traffica odatle...

netreba mi nista fancy...
cisto da ako je iz USA ide jedna reklama a ako je iz azije druga.

baza korisnika je u izradi, ali to ce biti sve gotovo tek krajem godine...

marinowski 19. 11. 2005. 06:32

Ako ti treba po kontinentima, preporucujem ti da ukrupnis opsege koliko mozes: na taj nacin ces dobiti na brzini, jer ce baza biti manja.

ako je u pitanju adserver, nije za salu, to zna da bude optereceno.

ivanhoe 20. 11. 2005. 05:00

u svakom slucaju ne treba ti shared memory, u svim primerima upotrebe koje sam video za php to je bilo sporije i nestabilnije od mysql baze, pogotovo ako koristis persistent konekciju na bazu..


Vreme je GMT +2. Trenutno vreme je 04:10.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.