Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 Как да определим географското местонахождение на посетителите на сайт
  1. Geotargeting - IP Geolocation
     
Автор  plamenSm (08.04.2008 16:19)  съобщение до автора
Погледнат  2024 пъти  добави към любими
Оценка  добави коментар
Гласове  --  изпрати на приятел
Коментари  (1)  абонирай се за PHP
    Страница 1 / 1

 



Вероятно бихте искали да знаете от къде се посещава вашия сайт?

В този урок ще покажем как може да стане това, като се използват ресурси, предлагани от MaxMind.

Това са база данни в бинарен файл (има и вариянт са SQL база данни) и API пакети за различни езици за програмиране, които определят географското положение на базата на IP адрес.

Това може да се използва например за статистики, автоматично превключване на езика на сайта, ограничаване на достъпа от определени държави и други.


Необходими файлове:

GeoIP.dat - база данни във вид на бинарен файл. Можете да свалите лесно и без регистрация безплатна light версия от: http://www.download3k.com/GeoLite-Country/Download-Free-GeoIP.dat.gz.html

geoip.inc - Free Open Source PHP API за достъп до GeoIP.dat: http://www.maxmind.com/download/geoip/api/php/geoip.inc


За да изпробвате примера, изтеглете тези ресурси. Разархивирайте GeoIP.dat.gz. (за Linux: gunzip -d GeoIP.dat.gz) . Запишете geoip.inc, GeoIP.dat и тестващия PHP код в една директория на вашия сървър.


Примерни фрагменти PHP код:

Тъй като базата данни е доста голяма е добре да се обръщаме към API функциите от geoip.inc възможно най-рядко. Едно решение е да запазим кода на държавата на посетителя като cookie на компютъра му. Естествено при първото посещение, ще трябва да се обърнем към базата данни:

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
include_once ("geoip.inc");

function getCountryCode() {
   
if (isset ($_COOKIE["geoCode"])) {
       
$countryCode = $_COOKIE["geoCode"];
   
}
   
else {
       
$gi = geoip_open("GeoIP.dat", GEOIP_STANDARD);
       
$countryCode = geoip_country_code_by_addr($gi, $_SERVER["REMOTE_ADDR"]);
       
geoip_close($gi);

       
// Cookie с 6 месеца валидност
       
setcookie("geoCode", $countryCode, time() + 15552000, "/", ".ВАШИЯТ_ДОМЕЙН", 0);
   
}

   
return $countryCode;
}
?>



Използвайки тази функция, можем да добавим различен код в генерираната страница в зависимост от държавата от която е посетителя. Например да вмъкнем специален поздрав и допълнителен код за посетителите от България, и други за всички останали посетители:


CODE
1
2
3
4
5
6
7
8
9
10
11
<?php
if (getCountryCode() == "BG") {
   
echo "Здравейте!";
   
include ("ads/adsForBG.inc");
}
else {
   
echo "Hello!";

   
include ("ads/adsForTheRestOfTheWorld.inc");
}
?>



Ако искате, покажете националния флаг на държавата, променете езика на страницата ... изобщо използвайте фантазията си ...


Ако решите да включите тези възможности във вашия сайт, имайте предвид следните факти:

  • запознайте се добре с лицензните споразумения за ползване
  • базата данни се обновява периодично в зависимост от лиценза на версията (за Free версията - веднъж месечно)
  • акуратността на базата данни също зависи от вида на версията (за Free версията - около 97%)
  • има възможност и за автоматично обновяване чрез API.

За пълни подробности се обърнете към сайта на MaxMind.

Успех!


Източник: 999tutorials.com



   


Ключови думи: php geotargeting IP Geolocation географско местонахождение посетител ip api


Още уроци от тази рубрика


 
  • Подобни теми от myLinks
 

 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

Готино уроче

  iwanov на 09.04.2008 01:11

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008