Release 1.1

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

XML-сервис

Добавлено: Пятница, 13 Марта, 2009 16:07       Размещено в: Новости проекта

Убедительная просьба, если Вам надо прокачать большое количество адресов, просьба заключать их в один запрос (не более 4000 Ip в одном запросе). В скором времени будет выложен пример скрипта на perl для прокачки лога Apache.
Теперь мы подключили XML-сервис обработки запросов на определение местонахождения российских IP-адресов. Сервис обслуживается специальным сервером. Сервер получает запрос в формате XML через POST HTTP запрос, отдает ответ также в формате XML.

Сервер расположен по адресу 194.85.91.253, порт 8090, работает по протоколу HTTP. Метод GET сервером не поддерживается. Минимальный заголовок HTTP запроса выглядит следующим образом:

POST /geo/geo.html HTTP/1.1
Content-length: CL
,где CL - длина тела запроса

Формат тела запроса выглядит следующим образом:
<ipquery [id="123456"]>
<fields>
[<all/>]
[<inetnum/>]
[<inet-descr/>]
[<inet-status/>]
[<city/>]
[<region/>]
[<district/>]
[<lat/>]
[<lng/>]
</fields>
<ip-list>
<ip>62.5.128.0</ip>
<ip>144.206.192.23</ip>
….
<ip>85.44.33.22</ip>
</ip-list>
</ipquery>
,где id=”123456″ - необязательный параметр. Это идентификатор запроса, в кавычках - любые числа и буквы, ответ сервера будет содержать указанный вами id; тег <fields> содержит поля, которые вы хотите получить:
<inetnum/> - блок адресов, к которому относится искомый ip-адрес
<inet-descr/> - описание блока по базе RIPE (www.ripe.net)
<inet-status/> - статус блока по базе RIPE
<city/> - город, к которому относится искомый ip
<region/> - регион, к которому относится искомый ip
<district/> - федеральный округ РФ, к которому относится искомый ip
<lat/> - географическая широта города
<lng/> - географическая долгота города
<all/> - все вышеперечисленные поля
В теге <ip-list> содержится список ip, которые надо прокачать. Это может быть один ip, или несколько. Максимальное количество 4000 ip в одном запросе. Каждый ip обрамляется тегами <ip> и </ip>.
Формат ответа сервера:
<ip-answer id=”123456″>
<ip value=”62.5.128.0″>
<inetnum>62.5.128.0 - 62.5.128.15</inetnum>
<inet-descr>Subnetwork for VA159-RIPE</inet-descr>
<inet-status>ASSIGNED PA</inet-status>
<city>Москва</city>
<region>Москва</region>
<district>Центральный</district>
<lat>55.755787</lat>
<lng>37.617634</lng>
</ip>
….
</ip-answer>
По каждому адресу, мы получаем список полей, которые мы указали в <fields> в запросе. В вышеуказанном примере ответа в запросе был указан <all/>.
Для обращения к серверу с вашего сайта, можно использовать стандартную библиотеку HTTP (имеется практически во всех языках программирования). Подключаемся к 194.85.91.253:8090, отправляем POST запрос на /geo/geo.html, в котором содержится <ipquery>…</ipquery>. В скором времени будут выложены примеры на различных языках.

Для обращения к серверу через форму нужно вставить такой HTML код:

<form name = “index” action = “http://194.85.91.253:8090/geo/geo.html” method = “post”>
<textarea name=”address”></textarea>
<input type=”submit” value=”OK”>
</form>

Названия формы и поля <textarea> не важны. В поле textarea вставляется запрос в формате XML, указанный выше. Например:

150 комментариев на тему “XML-сервис”:

Страницы: « 1 2 3 [4] 5 » Показать все комментарии

  1. 91
    SuhaRik ответил:

    Egor N Zuskin ответил:
    27 Августа, 2009 в 13:45
    Класс на php для использования IPGeo в своих скриптах
    http://www.it2k.ru/projects/class-ipgeo/

  2. 92
    SuhaRik ответил:

    Egor N Zuskin Огромное спасибо - потратил пол дня пока не нашёл твою ссылку

  3. 93
    Администратор ответил:
    Посоветуйте
    Как часто следует проводить валидацию ip адреса?
    То есть если запросы кешируются в моей базе, через какое время их желательно перепроверять у вас?

    База обновляется каждый день

  4. 94
    Администратор ответил:
    База обновляется ежедневно в какое-то определенное время, или просто обновляется не реже чем раз в сутки? Это важно знать чтобы правильно сделать кэширование результатов, которые возвращает Ваш сервис, и соответственно, уменьшить нагрузку на него.

    П.С. у Вас на кнопке «Комментировать» одна буква «м».

    База обновляется каждый день в 8 утра. Спасибо за замечание, исправили.

  5. 95
    gt_rocker ответил:

    пример с использованием xml-сервиса: http://grantorinoteam.blogspot.com/2009/10/blog-post.html

  6. 96
    Данила ответил:

    Класс на php для использования IPGeo в своих скриптах
    http://www.it2k.ru/projects/class-ipgeo/

    Спасибо, Egor N Zuskin! Работает!

  7. 97
    Egor Zuskin ответил:

    2Данила незашто … )
    немного обновил класс теперь есть кеширование данных и проверка на валидность ип адреса
    !ВАЖНО! для работы необходимо php-xml расширение для php
    http://www.it2k.ru/projects/class-ipgeo/

  8. 98
    Никита ответил:

    Здравствуйте, благодарю за сервис.

    Возникла некоторая сложность:
    Задача: требуется в зависимости от выданного города и региона вывести определенные значение. Есть ли в выдаче вашего сервера какая либо нумерация городов?, или что то типа того, или придется делать так: if ($city==”Воронеж”) {echo “…”;}

    Если так, то можете ли вы выложить базу с точными названиями всех городов и регионов, так как их выдает сервер? (желательно в удобном для работе формате, наример csv).

    Заранее большое спасибо.

  9. 99
    Администратор ответил:
    Здравствуйте, благодарю за сервис.

    Возникла некоторая сложность:
    Задача: требуется в зависимости от выданного города и региона вывести определенные значение. Есть ли в выдаче вашего сервера какая либо нумерация городов?, или что то типа того, или придется делать так: if ($city==”Воронеж”) {echo “…”;}

    Если так, то можете ли вы выложить базу с точными названиями всех городов и регионов, так как их выдает сервер? (желательно в удобном для работе формате, наример csv).

    Заранее большое спасибо.

    Нумерации городов нет, но специально по Вашей просьбе выложили список городов и регионов. соответственно файлы:
    http://ipgeobase.ru/files/db/Main/cities_list.db
    и
    http://ipgeobase.ru/files/db/Main/region_list.db

  10. 100
    Администратор ответил:
    хотелось бы увидеть следующую возможность:
    а именно постоянную ссылку
    http://194.85.91.253:8090/geo/ но!!! которая работает следующим образом:

    1. скрипт передает вашему сервису только 1 параметр, номер версии моей базы в формате скажем текущей даты(скажем 04102009:1700)
    2. если я еще не имею полную базу(первое обращение), то получаю полную базу
    3. если имею то получаю только изменения скажем между
    04102009:1700 (моя версия) и 06102009:0330 (актуальная ваша версия)
    скрипт импорта изменений (отработавший без ошибок), актуализирует дату, до скачанной, полная весит “копейки”, а изменения вообще крохи
    4. м.б данный функционал разрешать не всем а только зарегистрированным в системе сайтам

    получится, что фактически единожды скачав полную базу, я работаю с ней на своем сайте, с оптимальным интервалом скрипт по “крону” синхронизируется с вашей актуальной базой..
    конечно речь идет о сайтах с многотысячной аудиторией в день, которым не хочется быть забаненным или зависеть от временной недоступности вашего сервиса, (т.е с вероятностью ~99+% на основании своей версии от “вчера”) я смогу правильно определить регион пользователя, да и ваша нагрузка , думаю, существенно упадет.

    спасибо!

    Хорошее предложение, мы обязательно подумаем над его реализацией.

  11. 101
    Никита ответил:

    Большое спасибо, за точные базы.
    Соответственно парочка вопросов:

    1. Это все города которые есть у нас в россии, или это только те, где определяется IP (или где вообще существует интернет.)
    2. Изменяется ли это база со временем?
    3. В какой точно кодировке выдает их ваш сервис? (можно ли получать в utf-8 или конвертировать самому?)

  12. 102
    Администратор ответил:
    Большое спасибо, за точные базы.
    Соответственно парочка вопросов:

    1. Это все города которые есть у нас в россии, или это только те, где определяется IP (или где вообще существует интернет.)
    2. Изменяется ли это база со временем?
    3. В какой точно кодировке выдает их ваш сервис? (можно ли получать в utf-8 или конвертировать самому?)

    Спасибо за отзыв)
    1. Нет, это только наиболее крупные, самые маленькие населенные пункты как правило определяются как их областные или районные центры.
    2. Да, конечно, она обновляется каждый день. Среднее количество обновлений - 50-70 блоков в день.
    3. Сервис выдает в кодировке Windows-1251. Пока других кодировок нет, поэтому придется конвертировать самому.

  13. 103
    alemiks ответил:

    Планируется ли создание веб-службы? Если да, то когда появится?

  14. 104
    Администратор ответил:
    Планируется ли создание веб-службы? Если да, то когда появится?

    Уточните пожалуйста какой конкретно веб-службы?

  15. 105
    alemiks ответил:

    Я имел в виду оформление вашего сервиса в виде веб-службы по SOAP-протоколу

  16. 106
    Администратор ответил:
    Я имел в виду оформление вашего сервиса в виде веб-службы по SOAP-протоколу

    Пока не планируется, но в будущем мы рассмотрим Ваше предложение.

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

    Правильно ли я понял, что сейчас сервис работает в режиме “не более 44 IP в одном запросе”? Когда ожидается работа в полную мощность - до 4000 IP?

  18. 108
    Алексей ответил:

    Пожелание: было бы здорово если бы для регионов возвращался еще и их код, например для Новосибирской области 54. Это упростило бы задачу сопоставления региона, т.к. наименования могут отличаться, например может быть Новосибирская обл. и т.п.

  19. 109
    Евгений ответил:

    Согласен с предыдущим комментатором, очень было-бы удобно закрепить за каждым городом свой код, можно даже воспользоваться ОКАТО, или автомобильные, ну в крайнем случае вообще свою нумерацию введите.

  20. 110
    Администратор ответил:
    Правильно ли я понял, что сейчас сервис работает в режиме “не более 44 IP в одном запросе”? Когда ожидается работа в полную мощность - до 4000 IP?

    Нет, не правильно. Сервис работает с указанным ограничением. Если у Вас возникли проблемы, и сервис отказывается обслуживать более 44 адресов, опишите более подробно проблему: с какого адреса вы делаете обращения, что отвечет сервис, когда была последняя ошибка?

  21. 111
    Администратор ответил:
    Пожелание: было бы здорово если бы для регионов возвращался еще и их код, например для Новосибирской области 54. Это упростило бы задачу сопоставления региона, т.к. наименования могут отличаться, например может быть Новосибирская обл. и т.п.
    Согласен с предыдущим комментатором, очень было-бы удобно закрепить за каждым городом свой код, можно даже воспользоваться ОКАТО, или автомобильные, ну в крайнем случае вообще свою нумерацию введите.

    По многочисленным просьбам, скоро такая возможность появится. Как только нумерация будет введена, Вы узнаете об это из новостей проекта.

  22. 112
    Никита ответил:

    ***!!!прошу прощения, предыдущий пост не дописан, нечаяно отправил!!!***
    полная версия:

    Тоже хотелось бы видеть номера регионов и городов.
    А лучше единый номер совмещающий и то и другое, к примеру:
    4001=КАЛУГА (40 регион, 01 город),
    4002=ОБНИНСК (40 регион, 02 город соответственно).
    возможно мой пример не совершенен, и ваш будет продуман лучше в любом случае ждем.

    Уважаемая Администрация, если не сложно, укажите хотя бы ориентировочные сроки введения такой функции. Лично я интересуюсь для того, что бы знать запускать свой проект с привязкой к названиям, или немного подождать…

    Заранее спасибо)

  23. 113
    Администратор ответил:
    ***!!!прошу прощения, предыдущий пост не дописан, нечаяно отправил!!!***
    полная версия:

    Тоже хотелось бы видеть номера регионов и городов.
    А лучше единый номер совмещающий и то и другое, к примеру:
    4001=КАЛУГА (40 регион, 01 город),
    4002=ОБНИНСК (40 регион, 02 город соответственно).
    возможно мой пример не совершенен, и ваш будет продуман лучше в любом случае ждем.

    Уважаемая Администрация, если не сложно, укажите хотя бы ориентировочные сроки введения такой функции. Лично я интересуюсь для того, что бы знать запускать свой проект с привязкой к названиям, или немного подождать…

    Заранее спасибо)

    Ничего страшного, предыдущий пост удален :)
    Ваша идея понятна, многие наши пользователи просили сделать что-то подобное. К сожалению, точных сроков пока сказать не могу, но я думаю в ближайший месяц нумерация регионов будет введена точно.

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

    Мне нужно определять местное время посетителя. Было бы очень удобно если бы вы предоставляли такую информацию.
    ps
    хотел потестить сервис, а он выдаёт тайм аут, 194.85.91.253:8090 не пингуется.

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

    Извиняюсь, проблема в моём скрипте.

  26. 116
    Никита ответил:

    Уважаемая администрация.

    Вот тут,
    http://informer.gismeteo.ru/getcode/xml.php
    в погодном XML сервисе, уже есть единая система нумерации городов,
    возможно это поможет вам в поиске решения для вывода номеров города по ip.

    =))

  27. 117
    Администратор ответил:
    Мне нужно определять местное время посетителя. Было бы очень удобно если бы вы предоставляли такую информацию.
    ps
    хотел потестить сервис, а он выдаёт тайм аут, 194.85.91.253:8090 не пингуется.
    Извиняюсь, проблема в моём скрипте.

    Хорошее предложение, в ближайшее время сервис будет выдавать timezone города.

  28. 118
    sli ответил:

    > Egor N Zuskin ответил:
    > Класс на php для использования IPGeo в своих скриптах
    > http://www.it2k.ru/projects/class-ipgeo/

    Добавил кеширование на MySQL и, в виде плагина, кеширование средствами Joomla:
    http://bitbucket.org/sli/ipgeo/

    Данные сохраняются для всей подсети запрашиваемого IP, что должно снизить количество обращений к серверу ipgeobase.ru

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

  29. 119
    Kuvalda.Spb.RU ответил:

    Справочники нужно с инкрементальным апдейтом по серийнику (обычно это YYYYMMDDHHMMSS).
    Отмечать в справочнике каждую строчку при изменении и по апдейту отправлять только то чего нет у клиента. Справочники надо сделать полными, не только по России, конечно привязки к адресам может и не быть, а может быть очень грубая, например к стране. Но с геосправочником будет очень полезно, поскольку кроме айпи, есть немалая проблема управления регионами, приходится писать и собирать собственные базы.
    С идентификацией в этом смысле тоже не очень хорошо.
    ISO-3166 - дает только страны и федеральное деление. Подходят для грубого кодирования.
    А дальше должны идти города, но, как ни странно, единого стандарта нет.
    В России регионы (кторые называют автомобильными) на самом деле не автомобильные.
    Они к примере в налоговых идентификаторах используются.
    Коды ОКАТО и КЛАДР тоже чисто Российские, КЛАДР - классифицирует очень подробно, вплоть до номеров домов, за его поддержку отвечает ГНИВЦ ФНС, базу можно скачать у них с сайта http://www.gnivc.ru.
    В других странах собственные классификаторы. Это жутко неудобно в глобализированном обществе.
    Решите эту проблему - можете выйти в Инете на международный рынок с единым классификатором вплоть до населенного пункта или улицы, их координат и айпи-адресов.

  30. 120
    Никита ответил:

    Администрация, здравствуйте.

    Хочу напомнить, что многие из нас, как манны небесной ждут нумерации городов России. Скажите, если вам предоставить базу нумерации городов и обосновать ее систему (т.е. Почему именно такая нумерация логична, на чем базируется, итд…) поможет ли это ускорить процесс?

    Заранее спасибо.

    P.S. (сначала отправил это сообщение в тему “с праздниками”, извините, с тормозил, так как искал самый последний топик по дате, и видимо не там нашел… )

Страницы: « 1 2 3 [4] 5 » Показать все комментарии

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

© 2007-2015 IpGeoBase