Szóval, ismert a tény, amikor meglátogatsz egy oldalt külső proxy nélkül, akkor a "saját" ip-d is felhasználhatóvá válik az oldal számára.
Itt jön a képbe: "Mutasd az ipd-d, megmondom, hogy ki vagy" -dolog.
Ez a GeoIp. A GeoIp olyan adathalmaz, ami tárolja az adott ip tartományba tartozó Régió nevet, kódot.
SqlLite2 adatbázissal mutatom be a használatát...
Kell egy Sql kezelő program, ami legyen most windows alá az SQLIte admin nevü program, amely innen érhető el: sqliteadmin.orbmu2k.de
A programban, hozzunk létre egy új adatbázist, Adatbázis -> Új, majd tallózzunk be neki egy helyet, és mielőtt mentjük, alul SqLite2 DB típust válasszuk.
Hozzunk létre egy új táblát. Bal oldalt Táblák -> Tábla létrehozása. Itt megjelenik egy ablak, ahol a mezőket és a táblanevet tudjuk szerkeszteni. A tábla neve legyen geoip.
Ezeket a mezőket adjuk a táblához:
begin_ip VARCHAR(15)
end_ip VARCHAR(15)
begin_num NUMERIC
end_num NUMERIC
country TEXT
name TEXT
Az adatbázis szerkezet meg is van, most jöhet a cvs fájl lekezelése.
Töltsük le a cvs-t innen: GeoIP.dat.gz, csomagoljuk ki, és nyissuk meg egy szövegszerkesztővel, ami ha lehet ne a windowsos text-editor, vagy Wordpad legyen, hanem amivel php-kat szerkesztjük. Azok általában kezelik a cvs-t is rendesen.
A cvs elejére szúrjuk be ezt a sort:
"begin_ip","end_ip","begin_num","end_num","country","name"
Majd mentsük el.
Az SQLite adminban felül a menüben Adat ->Importál
Állomány megnyitása, és keressük meg a cvs fájlunkat. Felugrik majd egy ablak, megkérdezi Mi az elválasztó karakter. Ott alapból a ";" (pontos vessző) jelenik meg, de nekünk a "," (sima vessző) kell most. Okézzuk le.
Megint egy kérdés: "Az első sor tartalmazza a mezőnevet?", amire a válasz: igen. (Ezt szúrtuk be a cvs elejére)
A mezőtérkép résznél "Forrás mezők" és "Cél mezők" -nél alúl megjelennek lenyíló nezőben a táblamező nevei. Vagyis, alapból üres tartalmat mutatnak. Alúl válasszuk ki a Céltáblát, ami a fentebb megadott geoip nevet kapta.
A "Forrás mezők" és "Cél mezők" mellett egy ikon található, amelyre kattintva a mezőneveket automatikusan egyezteti és kitölti. Hogyha mind két oldalt "Forrás mezők" és a "Cél mezők" is ugyan azokat a mezőneveket jelenítik meg, akkor minden jól ment.
Adat importálása gomb, és szívjunk el egy cigit, igyunk egy kv-t, nézzünk meg egy filmet stb. Sokáig fog tartani, mert nem kicsi adatbázisól van szó.
Hogyha készen van, akkor teszteljünk:
Előszőris, ha nem tudjuk a saját IP-nket, akkor itt megnézhetjük. Majd, konvertáljuk is át 'long ip'-re itt.
Majd a kapott számértéket SQLite adminban felhasználjuk a következő módon:
Az adminban felül az SQL lekérdezés fül legyen aktív, és oda másoljuk be ezt a sort:
SELECT country FROM geoip WHERE kapott_longid BETWEEN begin_num AND end_num LIMIT 1
Ahol értelemszerüen a kapott_longid az átváltott ip-nket takarja.
Majd, nyumjunk egy F9 -et, és voálá, kiböki nekünk a Régiónk kódját.
Ehhez, ínyencség képpen egy ikonszet is jár:
flags.zip
flags.tgz
melyeket felhasználhatunk alkalmazásainkban, ugyanis az ikonok illeszkednek a country mezőnévre egy strtolower() függvénnyel. És hogyha mégsem lenne találat, akkor arra ott a '-.gif' vagy az 'unknown.gif' nevü gifecske.
Megjegyzem, hogyha tényleg csak annyit akarunk megtudni, hogy milyen nyelven böngészi valaki az oldalt, akkor:
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);