Sypex Geo 2.2 — теперь с GeoNames и ОКАТО
Вышла новая версия Sypex Geo 2.2 — очень быстрого алгоритма определения города по IP. Теперь базы данных стали двуязычными (русский и английский), регионы и города теперь привязаны к базе данных GeoNames, и имеют постоянные ID.Были добавлены ОКАТО коды для городов и регионов России, КОАТУУ для Украины и СОАТО для Беларуси.
Технические подробности Алгоритм работы Sypex Geo значительно не изменился, были исправлены небольшие ошибки, которые возникали при сильной неравномерности распределения IP диапазонов.Основные изменения коснулись справочников.Добавился справочник стран, позволяющий сохранянь более подробную информацию о стране. Внедрен универсальный формат упаковщика данных, благодаря чему можно сохранять в базу любые данные, без изменений в API. Формат упаковки сохраняется в файле базы данных, после заголовка. Подробнее о формате данных можно почитать в спецификации формата SxGeo 2.2.REST API Вместе с новой версией Sypex Geo был запущен сервис REST API. Где с помощью простого запроса по HTTP или HTTPS можно получить наиболее актуальную и расширенную информацию об IP, используя самую свежую базу данных Sypex Geo Max.Результаты могут выдаваться в 3 форматах: JSON, JSONP и XML. Поддерживается пакетная обработка, до 100 IP в запросе.
Простейший запрос к API выглядит так: api.sypexgeo.net/В результате будет получена информация о вашем IP в формате JSON.
{ «ip»:»123.45.67.89», // Запрашиваемый IP «city»:{ // Информация о городе «id»:1835848, // ID города в GeoNames «lat»:37.566, // Широта города «lon»:126.9784, // Долгота города «name_ru»: «Сеул», // Название на русском «name_en»: «Seoul», // Название на английском «okato»:» // ОКАТО коды для городов России, КОАТУУ для Украины и СОАТО для Беларуси }, «region»:{ // Информация о регионе «id»:1835847, // ID региона в GeoNames «lat»:37.58, // Широта региона «lon»:127, // Долгота региона «name_ru»: «Сеул», // Название на русском «name_en»: «Seoul», // Название на английском «iso»: «KR-11», // ISO3166–2 геокод региона «timezone»: «Asia/Seoul», // Часовой пояс региона «okato»:» // ОКАТО код для регионов России, КОАТУУ для Украины и СОАТО для Беларуси }, «country»:{ // Информация о стране «id»:119, // ID страны «iso»: «KR», // ISO3166–1 геокод страны «continent»: «AS», // Код континента «lat»:36.5, // Широта центра страны «lon»:127.75, // Долгота центра страны «name_ru»: «Южная Корея», // Название на русском «name_en»: «South Korea», // Название на английском «timezone»: «Asia/Seoul» // Часовой пояс столицы }} Те же данные в xml можно получить выполнивapi.sypexgeo.net/xml
Чтобы получить информацию об произвольном IP нужно выполнить запрос: api.sypexgeo.net/json/123.45.67.89
Если нужно проверить сразу несколько IP, нужно их просто перечислить через запятую или точку с запятойapi.sypexgeo.net/json/123.45.67.89;222.22.22.22
Чтобы получить данные в формате JSONP нужно выполнить запрос: api.sypexgeo.net/jsonp/123.45.67.89&callback=alert
Допускаются и POST запросы, в таком случае IP указываются в параметре ip.
Ссылки по теме