24 декабря 2009
Получение GEO данных по IP на Drupal 6.х
- написал: DragonDesign
- 11
- 6
В продолжении статьи «Получение GEO данных по IP» камрада МраКа, напишу как это делается в Drupal 6.x
В небольшом стартапе http://www.smstariff.ru было необходимо сделать так, чтобы страна была выбрана сразу.
Итак начнем:
Вам понадобится модуль IP2Nation (http://drupal.org/project/ip2nation)
После установки модуль в настройке почти не нуждается.
Вы можете сразу прописывать в шаблоне:
$real_country содержит 2-х буквенный код (ru, en и т.д.) который можно использовать в сниппетах или модулях.
Все казалось бы отлично, а вот фиг вам. Вы все это проделываете и вуаля, он вам выдает вместо России Канаду! Вот такая телепортация :-)
Дело в базе, нужно с сайта разработчика скачать обновленную базу (http://www.ip2nation.com/ip2nation/Download). И залить вместо существующей.
Полный API модуля не изучал, мне нужен был только код страны.
Теперь все нормально, мы живем в России, все счастливы.
В небольшом стартапе 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 модуля не изучал, мне нужен был только код страны.
Теперь все нормально, мы живем в России, все счастливы.
- dark_barker
- 24 декабря 2009, 23:49
- 0
Немного оффтоп. А в чём смысл стартапа, если не секрет. Как его монетизировать, ума не приложу? А если не монетизировать, то тогда вопрос другой — чем он отличается от кучи аналогичных проектов?
- DragonDesign
- 25 декабря 2009, 08:14
- 0
я тоже не знаю как его монетизировать :-). Стартап не для себя делаю, друг попросил, а я решил почему бы и нет, поковыряю, заодно JQuery изучу.
- MpaK
- 25 декабря 2009, 13:48
- 0
Жаль, что только код страны даёт и базу надо обновлять ради этого большую :(
- DragonDesign
- 25 декабря 2009, 14:18
- 0
ну почему же только код страны, это мне нужен был только код, а так выдет следующее:
1. код страны, 2-х значный (iso), 3-х значный (iso)
2. Наименование страны, по iso, поное
3. флаг страны
4. координаты страны для Google Maps
А база там копеешная, на 40 тыс. записей.
1. код страны, 2-х значный (iso), 3-х значный (iso)
2. Наименование страны, по iso, поное
3. флаг страны
4. координаты страны для Google Maps
А база там копеешная, на 40 тыс. записей.
- MpaK
- 25 декабря 2009, 14:32
- 0
п.4 интересно, города только не хватает и часового пояса, а так думаю даже стоит ковырнуть и написать отдельный IP2NATION без зависимости к друпал…
- DragonDesign
- 25 декабря 2009, 14:45
- 0
город сложно по IP определить, в базе же пулы адресов… а если контора допутим какая нить Корбина и предоставляет доступ в селе Кукушкино… пул то принадлежит Корбине, и в RIPE тупо прописано что эта сеть класса C… находится в России в Москве… т.е. четкого географического опред. по этой базе нету.
Думаю тут понадобится другая ГЕО база. Ведь статистика LiveInternet же легко определяет город посетителя…
Думаю тут понадобится другая ГЕО база. Ведь статистика LiveInternet же легко определяет город посетителя…
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
Комментарии:6