Release 1.1

При поддержке   

Новый XML сервис!

Добавлено: Пятница, 11 Февраля, 2011 18:55       Размещено в: Новости проекта

На нашем сайте появился новый xml-сервис для определения местонахождения ip-адреса.

Сервис расположен по адресу http://ipgeobase.ru:7020/geo?ip=1.2.3.4

В отличие от предыдущего сервиса, новый обрабатывает запросы по одному ip адресу (методом GET).
В ответе содержится блок ip адресов, страна, город, регион, округ и координаты. К сервису помимо российской базы, подключена ежедневно обновляемая база ip-адресов Украины (с точностью до города). Также в БД сервиса содержатся все блоки RIPE (европа и часть азии) с точностью до страны.

Upd: Добавлены США и Канада (с точностью до страны).

Пример московского адреса: http://ipgeobase.ru:7020/geo?ip=144.206.192.6

Пример киевского адреса: http://ipgeobase.ru:7020/geo?ip=193.193.199.255

Пример английского адреса: http://ipgeobase.ru:7020/geo?ip=92.2.3.4

Предыдущий сервис (только Россия) также будет продолжать работать.
Ваши пожелания и замечания по работе сервиса оставляйте в комментариях к этому посту.

35 комментариев на тему “Новый XML сервис!”:

  1. 1
    dmitry ответил:

    подскажите, когда можно будет скачать базу Украины архивом? сейчас там обновляемая только для России

  2. 2
    Andrey Brattsev ответил:

    Отличная новость!!!

  3. 3
    Администратор ответил:
    подскажите, когда можно будет скачать базу Украины архивом? сейчас там обновляемая только для России

    Думаю на этой неделе выложим. Файл будет содержать новое поле - страна. Для блоков из других стран (не RU и не UA) будет только ISO код страны, без города. Файл будет обновляться ежедневно.

  4. 4
    DoS ответил:

    Есть ли какие-нибудь ограничения по использованию данного сервиса?

  5. 5
    Администратор ответил:
    Есть ли какие-нибудь ограничения по использованию данного сервиса?

    Пока никаких - пользуйтесь на здоровье! Дальше посмотрим - если не будет справляться, поставим ограничение на число запросов в секунду.

  6. 6
    Александр ответил:

    Функция возвращает строку содержащую название города соответствующую переданному параметру $ip;

    function get_city_by_ip($ip = ”, $reset_cache = FALSE) {
    if(!$_COOKIE["geolocation"] or $reset_cache) {
    if (!$ip) {
    $ip = ВАША_ФУНКЦИЯ_ОПРЕДЕЛЕНИЯ_IP();
    }
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, ‘http://ipgeobase.ru:7020/geo?ip=’.$ip);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 3);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
    curl_setopt($ch, CURLOPT_USERAGENT, ‘PHP Bot’);
    $data = curl_exec($ch);
    $city = ( !curl_errno($ch) && $xml = simplexml_load_string($data) ) ? $xml->ip->city : false;
    curl_close($ch);

    if ($city) {
    $city_enc = base64_encode($city);
    setcookie(”geolocation”, $city_enc, time()+3600*24*7); //set cookie for 1 week
    }
    } else {
    $city = base64_decode($_COOKIE["geolocation"]);
    }

    return $city;
    }

    Функция принимает 2 параметра:
    ip
    reset_cache - если она FALSE, то запрос записывается в куки на 1 неделю, если TRUE, то запрос производится каждый раз
    Таймауты выставляйте индивидуально (для меня это по 3 секудны)

  7. 7
    Tester ответил:

    Тег “/ip-answer” передается в одной строке с “ip value=…/ip”, что не совсем логично и не удобно для разбора. Но если адрес не найден, то всё нормально. Приведите пожалуйста к единому виду.

  8. 8
    Администратор ответил:
    Тег “/ip-answer” передается в одной строке с “ip value=…/ip”, что не совсем логично и не удобно для разбора. Но если адрес не найден, то всё нормально. Приведите пожалуйста к единому виду.

    Спецификации XML никак не регламентируют эту ситуацию. Можно писать хоть в одну строчку. Разбор обычно осуществляется стандартными библиотеками, которые наура все это воспринимают.

  9. 9
    Kid ответил:

    А с ipv6 будет база?

  10. 10
    Администратор ответил:
    А с ipv6 будет база?

    Обязательно. Для нас сейчас это приоритетное направление. Думаю, к концу лета будет готово.

  11. 11
    Максим ответил:

    Скажите, а есть ли планы расширить функционал предыдущего сервиса до функционала этого? Получается, что для того чтобы узнать страну для пачки IP - нужно перебирать их гетом в этом сервисе, тогда как и вам и конечному пользователю было бы удобнее и быстрее передать блок ip в одном запросе и получить один ответ с блоком данных, но предыдущий работает только с Россией, к сожалению.

  12. 12
    hackuna ответил:

    Базой казахстанских адресов когда-нибудь порадуете?

  13. 13
    Администратор ответил:
    Скажите, а есть ли планы расширить функционал предыдущего сервиса до функционала этого? Получается, что для того чтобы узнать страну для пачки IP - нужно перебирать их гетом в этом сервисе, тогда как и вам и конечному пользователю было бы удобнее и быстрее передать блок ip в одном запросе и получить один ответ с блоком данных, но предыдущий работает только с Россией, к сожалению.

    Странное дело получается. Когда мы запускали первый сервис, все дружно писали о том, что это не удобно, лучше по одному адресу. Кроме того судя по логам сервиса (на начало 2011 года) по несколько адресов прокачивает менее 0.5% пользователей. Поэтому и было принято решение ограничиться одним адресом. Теперь ситуация противоположная :) Скорей всего мы введем POST в новом сервисе, но это будет не в ближайшее время. Сейчас главный приоритет развития проекта - база ipv6 адресов.

  14. 14
    dmitry ответил:

    Есть какие-то ограничения на пользование с одного ip-адреса?
    Повесил у себя на сайте. Без всякого кэширования. За сутки у меня 3-4 тысячи кликов и следовательно запросов. Меня не забанят? :)

  15. 15
    Администратор ответил:
    Есть какие-то ограничения на пользование с одного ip-адреса?
    Повесил у себя на сайте. Без всякого кэширования. За сутки у меня 3-4 тысячи кликов и следовательно запросов. Меня не забанят?

    Нет, пока сервис справляется.

  16. 16
    Олег ответил:

    Добрый день,

    А можно добавить в вывод некоторый цифровой идентификатор населенного пункта? Чтобы было удобнее группировать сохраненные результаты.

  17. 17
    sli ответил:

    Спасибо за сервис!

    Всем привет.

    Если кого-то заинтересует, то для этого сервиса есть компонент на PHP, в котором помимо всего прочего есть возможность кеширования результатов в БД. За последние 2 дня он был адаптирован к новому XML-сервису и, возможно, местами сыроват, однако существующие юнит-тесты проходит без ошибок.

    На днях будут обновлены файлы для скачивания, а пока можно скачать компонент из репозитория (https://bitbucket.org/sli/ipgeo/src), посмотреть примеры использования (https://bitbucket.org/sli/ipgeo/wiki/Home) и оставить свои предложения или указания на ошибки (https://bitbucket.org/sli/ipgeo/issues/new).

  18. 18
    Владимир ответил:

    Здравствуйте, если по ip не выдается данных, значит его нет у вас в базе? (http://ipgeobase.ru:7020/geo?ip=74.52.75.130)

  19. 19
    Администратор ответил:
    Здравствуйте, если по ip не выдается данных, значит его нет у вас в базе? (http://ipgeobase.ru:7020/geo?ip=74.52.75.130)

    Здравствуйте. Да. В указанном вами примере адрес американский, а у нас в базе только Россия, Украина и Европа (только с точностью до страны)

  20. 20
    Sergey ответил:

    Отличный сервис !

  21. 21
    Дмитрий ответил:

    Здравствуйте.

    Спасибо сервис действительно очень удобный и полезный.
    Возможно-ли доработать сервис так что бы при обращение по адресу http://ipgeobase.ru:7020/geo (без указания IP адреса) сервис выдавал результат касательно IP адреса клиента инициирующий этот запрос?

    Зарание благадарю.

  22. 22
    Другая ответил:

    У меня миллионы запросов в день. Не хочу мучить Ваш сервис и подкладывать свинью другим, поэтому гружу базу и сама ее читаю. Просьба/вопрос: API для обновление базы данных можно сделать? Т. е. не отдельные запросы к Вам, а, допустим, раз в неделю выгрузка новой базы. И Вам не накладно и нам удобно. :)

  23. 23
    denzik ответил:

    Исправьте ошибку в Incorrect request. (mesasge)

  24. 24
    Александр ответил:

    Здравствуйте, а планируется ли добавлении всех всех стран? ато америку у вас не находит :(

  25. 25
    Администратор ответил:
    Здравствуйте, а планируется ли добавлении всех всех стран? ато америку у вас не находит

    Добрый день!

    Добавлены ipv4 адреса США и Канады (с точностью до страны)

  26. 26
    Администратор ответил:
    Исправьте ошибку в Incorrect request. (mesasge)

    Исправлено.

  27. 27
    Администратор ответил:
    У меня миллионы запросов в день. Не хочу мучить Ваш сервис и подкладывать свинью другим, поэтому гружу базу и сама ее читаю. Просьба/вопрос: API для обновление базы данных можно сделать? Т. е. не отдельные запросы к Вам, а, допустим, раз в неделю выгрузка новой базы. И Вам не накладно и нам удобно.

    Такого наверно наш сервис не выдержал бы :)
    Вы не первая кто предлагает выкладывать не базу целиком, а только обновления. Думаю, после запуска ipv6, мы сделаем такую возможность. Я сомневаюсь что вы имеете в виду миллионы уников. Скорей всего речь идет о 50-60 тысяч уников, которые просматривают много страниц. Можно обращаться только 1 раз за уника и давать ему куки. 50 тысяч наш сервис выдержит.

  28. 28
    cashMaker ответил:

    Почему ваш XML-сервис перестал отдавать информацию для некоторых моих IP? Есть ли какие-то ограничения на использование?

  29. 29
    Администратор ответил:
    Почему ваш XML-сервис перестал отдавать информацию для некоторых моих IP? Есть ли какие-то ограничения на использование?

    Добрый день!
    Ограничений на сервис нет, некоторые адреса забанены, т.к. они парсили сам сайт. Но на сервис эти ограничения не распространяются. Сообщите пожалуйста для каких адресов у вас наблюдаются проблемы и с каких ip вы делаете запросы?

  30. 30
    kotyara ответил:

    Огромное пасиба. Час убил на поиск базы, а тут такая приятная апишка. Привык к тому что бесплатный сыр сами знаете где… не случится ли так что со временем сервис станет платным? А то внедрю функционал с использованием вашего ресурса на сайт, а потом надо будет денюжку платить - искать что то новое и переделывать лень будет.

  31. 31
    Давид Мзареулян ответил:

    Спасибо за сервис и за вашу работу! Некоторые пожелания:

    1. При отсутствии параметра ip выдавать не 404, а инф. об адресе, с которого пришёл запрос. 404 вообще выдаваться никогда не должно (сервис-то есть, не умер), максимум — “Incorrect request” в XML-ответе;

    2. Помимо XML был бы удобен вариант с JSONP-выдачей — для обращений из клиентского JS;

    3. Пересадить всё-таки сервис на стандартный 80-й порт. Если поставить фронтендом nginx, то это будет делаться буквально несколькими строчками конфига.

  32. 32
    ducalis ответил:

    сделайте вывод данных в формате JSON, например путем добавления параметра &json=1
    думаю это не трудно, зато удобнее и приятно чем парсить ответный XML

  33. 33
    Konstantin ответил:

    Скажите насколько актуален сервис в настоящее время? и какие страны и континетры уже внесены в базу?

  34. 34
    Сергей ответил:

    Вариант на Jquery (а зачем свой сервер грузить, пусть на стороне юзера и работает)

    $(function(){
    jQuery(document).ready(function(){
    jQuery.ajax({
    type: “GET”,
    url: “http://ipgeobase.ru:7020/geo?ip=89.107.39.118″,
    dataType: “xml”,
    success: function(xml) {
    jQuery(xml).find(’ip’).each(
    function()
    {
    var city = jQuery(this).find(’city’).text(),
    region = jQuery(this).find(’region’).text();
    if(city!=region){
    ipg = city+”, “+region;
    }else{
    ipg = city;
    }
    $(’#ipg_content’).html(ipg);
    });
    }
    });
    });
    });

  35. 35
    Александр ответил:

    Connection timeout - это нормально? сервис жив?

Комментировать:

© 2007-2015 IpGeoBase