» »

Lociranje in usmeritev obiskovalca glede na državo

Lociranje in usmeritev obiskovalca glede na državo

klevic ::

Lep pozdrav

Podjetje ima zakupljenih več končnic (.com. .si. .hr....), zanima me ali je mogoče nastavit v apachu ali kje drugje (os. je OpenBSD) da bi strežnik prepoznal iz katere države prihaja obiskovalec in ga, če je npr. iz Hrvaške usmeri na .hr stran, ki je v hrvaščini. Če ga ne more locirati oz. nimamo končnice njegove države ga usmeri na .com?

Bi se to dalo naredit z kakšno skriptico? :8)

lp klemen
www.gwost.com

c3p0 ::

Uporabi GeoIP, ki precej dobro deluje tudi v brezplačni verziji. Če gledaš po končnicah, bo siol.net. amis.net ipd. obiskovalec pristal v ZDA verziji, kar pa ni v redu. GeoIP te probleme v 99% reši. www.maxmind.com

klevic ::

Iz portov sem namestil :
-GeoIP-1.3.17.tgz
-mod_geoip-1.2.6p0.tgz

Installation log:

Dependencies for mod_geoip-1.2.6p0 resolve to: GeoIP-1.3.17 (todo: GeoIP-1.3.17)
mod_geoip-1.2.6p0:parsing GeoIP-1.3.17
installed /etc/GeoIP.conf from /usr/local/share/examples/GeoIP/GeoIP.conf4%
installed /var/db/GeoIP/GeoIP.dat from /usr/local/share/examples/GeoIP/GeoIP.dat
mod_geoip-1.2.6p0:GeoIP-1.3.17: complete
mod_geoip-1.2.6p0: complete
--- mod_geoip-1.2.6p0 -------------------
To finish the install of mod_geoip, you need
to enable the module using the following command

/usr/local/sbin/mod_geoip-enable

If you already have Apache running on your machine,
you should not use "apachectl restart" - instead,
you should fully stop and then restart the server.
# /usr/local/sbin/mod_geoip-enable
Enabling GeoIP module...
[activating module `geoip' in /var/www/conf/httpd.conf]
cp /usr/local/lib/mod_geoip.so /usr/lib/apache/modules/mod_geoip.so
chmod 755 /usr/lib/apache/modules/mod_geoip.so
cp /var/www/conf/httpd.conf /var/www/conf/httpd.conf.bak
cp /var/www/conf/httpd.conf.new /var/www/conf/httpd.conf
rm /var/www/conf/httpd.conf.new

Nato sem v .htaccess vstavil (poskusil sem tudi v httpd.conf vendar je rezultat enak):
GeoIPEnable On
GeoIPDBFile /var/www/GeoIP.dat

RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^SI$
RewriteRule ^(.*)$ http://www.xxx.it$1 [L]

Nato dobim sledeči error, ob dostopu na željeno stran se redirection ne izvede. Redirection modul je pravilno nameščen, vse datoteke so tam kjer morajo biti.
....
Error Opening file /var/www/GeoIP.dat
[Mon Jun 11 15:15:09 2007] [notice] child pid 23836 exit signal Segmentation fault (11)
[Mon Jun 11 15:15:09 2007] [notice] child pid 7723 exit signal Segmentation fault (11)
Error Opening file /var/www/GeoIP.dat
[Mon Jun 11 15:15:11 2007] [notice] child pid 14782 exit signal Segmentation fault (11)
Error Opening file /var/www/GeoIP.dat
Error Opening file /var/www/GeoIP.dat
....
www.gwost.com

c3p0 ::

Vse lepo piše:

Error Opening file /var/www/GeoIP.dat

Nisi namestil baze IPjev GeoIP.dat. Najdeš na FTPju.

bluefish ::

kako pa se lahko podobno stvar naredi pri datotekah na serverju (lahko brez GeoIP ? )? Če je obiskovalec iz slovenije, ga SAMODEJNO usmeri na slovensko verzijo strani, če pa je iz kje druge, pa na angleško.

klevic ::

Lepo sem napisal: ...."vse datoteke so tam kjer morajo biti.".....
www.gwost.com

c3p0 ::

ls -l /var/www/GeoIP.dat
Pravice?

Pa ton malce popravi.

Ice-Heki ::

/ celoten post namenjen blueFishu /
blueFish je napisal:
kako pa se lahko podobno stvar naredi pri datotekah na serverju (lahko brez GeoIP ? )? Če je obiskovalec iz slovenije, ga SAMODEJNO usmeri na slovensko verzijo strani, če pa je iz kje druge, pa na angleško.

Tole misliš, kako bi naredil npr. v PHPju?
Ena možnost je, da dobiš podatkovno bazo, nato pa vzameš IP uporabnika in ga poiščeš v bazi ... (včasih je bilo tako, da so imeli ISPji določeno št. IP naslovov, npr. od xxx.xxx.001.xxx do xxx.xxx.002.xxx in potem se je vedelo, da vse kar je od 001.000 do 002.999, da je npr. ponudnik SiOL in da je uporabnik Slovenec). Take baze še obstajajo, samo poiskati jih je treba ... so pa včasih malce nezanesljive, ker so zastarele ...
Druga opcija je, da uporabiš kak brezplačen servis (naprednejši od www.moj-ip.com), in potem na stran vgradiš funkcijo, ki od uporabnika vzame IP ga pošlje servisu (torej neki strani), od tam pa dobiš odgovor o državi uporabnika ...
Tretja opcija je, da na podlagi jezika brskalnika definiraš jezik strani, ki se mu bo prikazal (je pa tole najslabša različica, sploh če uporabniki uporabljajo kakšne xyz brskalnike)

Potem, ko imaš podatek o lokaciji uporabnika oz. njegovem jeziku pa ga samo preusmeriš na določeno stran (npr. v PHPju narediš header('Location: ?lang=si'); za Slovenske uporabnike ... oz. če imate za Slovenske uporabnike domene header('Location: http://slovenska.domena'); -> to pa verjetno veš, glede na to, da tudi programiraš :)) )

Upam, da sem ti pomagal ...

r5r ::

Kaj pa pregled $_SERVER['HTTP_ACCEPT_LANGUAGE'] ?
And it makes me wonder.

bluefish ::

hvala Ice-Heki :D

klevic ::

777
www.gwost.com

arjan_t ::

@Ice-Heki:
Geoip je posodabljan vsak mesec (zastonjska verzija) imajo tudi dober php api

balocom ::

kaj pa domene in ga glede na zahtevano domeno pošle na tisto stran? (Virtual server al kaj že...)
V svetu brez googla bi bil najbolj uporabljen ukaz v bash-u ukaz man

Ice-Heki ::

Geoip je posodabljan vsak mesec (zastonjska verzija) imajo tudi dober php api

Se opravičujem, nisem vedel, ker nobenega od teh servisov do sedaj nisem uporabljal, samo vem da obstajajo ...
Hvala za opozorilo!

hvala Ice-Heki

Ni zakej :))

kaj pa domene in ga glede na zahtevano domeno pošle na tisto stran? (Virtual server al kaj že...)

Mogoče misliš tole, da pride uporabnik iz npr. domene www.domena.si na stran www.domena.com?lang=si, iz www.domena.at pa na www.domena.com?lang=de ... Seveda se da narediti, samo to po moje ni ravno najboljše - poglej, če jaz vpišem www.simobil.si oz. www.simobil.com oz. www.simobil.net je fino, če je stran vedno slovenska, ker jo pač najhitreje razumem in vsebuje informacije za slovensko prebivalstvo ... če me zanimajo angleške novice, jo že potem preklopim

Loki ::

hm?
http://ip-to-country.webhosting.info/

ce ti stran podpira kaksen skripten jezik, se da napisati, da gleda ip uporabnika.
I left my wallet in El Segundo


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Na podlagi IP naslova najdi točno lokacijo

Oddelek: Omrežja in internet
61319 (1003) Spc
»

Google Street View zbiral podatke o brezžičnih omrežjih

Oddelek: Novice / Zasebnost
86631 (5676) poweroff
»

Prepoved za ogled spletne strani le nekaterim

Oddelek: Programiranje
61062 (1004) fiction
»

Ip številka

Oddelek: Omrežja in internet
51694 (1480) meatwaad
»

Spletni servis za statistiko

Oddelek: Izdelava spletišč
61953 (1858) bradek

Več podobnih tem