Получение GEO данных по IP на Drupal 6.х

В продолжении статьи «Получение GEO данных по IP» камрада МраКа, напишу как это делается в Drupal 6.x
В небольшом стартапе http://www.smstariff.ru было необходимо сделать так, чтобы страна была выбрана сразу.

Итак начнем:
Вам понадобится модуль IP2Nation (http://drupal.org/project/ip2nation)

После установки модуль в настройке почти не нуждается.
Вы можете сразу прописывать в шаблоне:

<?php

function getRealIpAddr()
{
    if (!empty($_SERVER['HTTP_CLIENT_IP']))   //check ip from share internet
    {
      $ip=$_SERVER['HTTP_CLIENT_IP'];
    }
    elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))   //to check ip is pass from proxy
    {
      $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    else
    {
      $ip=$_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}
$country_obj = ip2nation_get(getRealIpAddr());
$real_country=$country_obj->code;
?>


$real_country содержит 2-х буквенный код (ru, en и т.д.) который можно использовать в сниппетах или модулях.

Все казалось бы отлично, а вот фиг вам. Вы все это проделываете и вуаля, он вам выдает вместо России Канаду! Вот такая телепортация :-)
Дело в базе, нужно с сайта разработчика скачать обновленную базу (http://www.ip2nation.com/ip2nation/Download). И залить вместо существующей.

Полный API модуля не изучал, мне нужен был только код страны.

Теперь все нормально, мы живем в России, все счастливы.

Комментарии (6)

RSS свернуть / развернуть
+
0
Немного оффтоп. А в чём смысл стартапа, если не секрет. Как его монетизировать, ума не приложу? А если не монетизировать, то тогда вопрос другой — чем он отличается от кучи аналогичных проектов?
avatar

dark_barker

  • 24 декабря 2009, 23:49
+
0
я тоже не знаю как его монетизировать :-). Стартап не для себя делаю, друг попросил, а я решил почему бы и нет, поковыряю, заодно JQuery изучу.
avatar

DragonDesign

  • 25 декабря 2009, 08:14
+
0
Жаль, что только код страны даёт и базу надо обновлять ради этого большую :(
avatar

MpaK

  • 25 декабря 2009, 13:48
+
0
ну почему же только код страны, это мне нужен был только код, а так выдет следующее:
1. код страны, 2-х значный (iso), 3-х значный (iso)
2. Наименование страны, по iso, поное
3. флаг страны
4. координаты страны для Google Maps

А база там копеешная, на 40 тыс. записей.
avatar

DragonDesign

  • 25 декабря 2009, 14:18
+
0
п.4 интересно, города только не хватает и часового пояса, а так думаю даже стоит ковырнуть и написать отдельный IP2NATION без зависимости к друпал…
avatar

MpaK

  • 25 декабря 2009, 14:32
+
0
город сложно по IP определить, в базе же пулы адресов… а если контора допутим какая нить Корбина и предоставляет доступ в селе Кукушкино… пул то принадлежит Корбине, и в RIPE тупо прописано что эта сеть класса C… находится в России в Москве… т.е. четкого географического опред. по этой базе нету.
Думаю тут понадобится другая ГЕО база. Ведь статистика LiveInternet же легко определяет город посетителя…
avatar

DragonDesign

  • 25 декабря 2009, 14:45

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.