Суббота, 20 сентября


В последнее время я не говорил ни о каких обновлениях. Это не значит, что их нет совсем, просто мы считаем их не настолько значительными, чтобы оповещать о каждой мелкой правке. Буквально сегодня мы таким образом внесли некоторые правки, которые обеспечивают ядру IWE более быстрое переключение между несколькими серверами баз данных, однако рассказывать только об этом обновлении было бы как-то неинтересно, поскольку польза от него умещается в одной строке текста. Поэтому чаще всего мы собираем такие мелкие новости для того, чтобы потом опубликовать полный обзор всего, что было обновлено.

На этой неделе также мы завершили сборку собственной базы данных GeoIP. Основной причиной к этому послужило то, что наш подрядчик, который прежде обеспечивал нас данными для таких баз, стал обновлять свою информацию едва ли не раз в полтора года, что не совсем правильно, так как диапазоны IP-адресов мигрируют намного чаще, а некорректное определение страны пребывания посетителя иногда может закончиться даже судебным делом, в том случае, если показанный пользователю контент запрещен в стране его пребывания (либо требует какой-либо регистрации/лицензирования). Именно поэтому мы решили, что наилучшим способом сбора информации будет собственная система, которая регулярно проверяла бы изменения в регистрации сетей и вносила бы обновления в базу данных. Понятное дело, такое развитие событий возможно только в том случае, если полностью весь процесс происходит у нас, а не у различных подрядчиков. Именно поэтому начиная с 1 сентября мы расторгли контракт с поставщиком данных GeoIP и запустили собственную систему формирования соответствующей базы данных. Фактически, первая тестовая версия была доступна уже через неделю, однако она была излишне объемной по той причине, что описывала отдельно каждую сеть даже в том случае, если такая сеть состоит из восьми IP-адресов. Содержать такие объемы данных на своем сервере мало кто захочет, поэтому мы принялись оптимизировать механизм сбора информации.

Поскольку наша база данных работает с точностью до страны, то какие-либо различия между провайдерами и городами нам не интересны. Это дало волю оптимизаторам, которые пришли к выводу, что если две сети по 256 адресов стоят рядом и при этом принадлежат Австрии, то их можно зарегистрировать в базе как одну австрийскую сеть на 512 адресов. Благодаря этому ходу нам удалось существенно укоротить размер базы данных, и если изначально он достигал едва ли не семидесяти мегабайт, то финальная версия умещалась всего-то в четыре мегабайта. При этом все новые сети, посетители из которых посетят сайт, подключенный к нашей базе, будут автоматически вносится в базу с данными, актуальными на момент внесения. Также мы разработали и механизм актуализации, однако при высокой посещаемости он мог генерировать вплоть до миллиона запросов whois, поэтому такой механизм мы пока оставили только для промышленного использования, но не для комплектования с каждым пакетом программного обеспечения на базе ядра IWE.

Нас немного смутил такой вопрос, как территориальная принадлежность Крыма. Дело тут, при этом, вовсе не в политике, а в том, что некоторые владельцы сайтов считают, что Крым должен определяться как Украина, а некоторые такого не приемлют и засыпают нас обращениями с требованием перенести сети, обслуживающие Крым, в список российских. Проблема тут заключается только в том, что сами провайдеры указывают во whois различные данные. Доходит иногда до такого абсурда, когда сеть относится к RU, но адрес при этом указан как «Crimea, Ukraine». Для решения данной проблемы мы решили немного отойти от своих стандартов и сделать различные базы данных. Основная база данных GeoIP (которая комплектуется по умолчанию) включает в себя данные в таком виде, в котором их указывают провайдеры. То есть, половина сетей Крыма будет распознаваться как Россия, а вторая половина ― как Украина (одна даже почему-то как Молдова). Для клиентов, которые желают, чтобы на их сайтах посещения из Крыма трактовались, как посещения из Украины, мы сделали специальный патч, который установит всем сетям с адресом регистрации в Крыму страну UA. Такой же патч мы изготовили и для тех клиентов, которые желают, чтобы данные посещения интерпретировались системой как российские. Хочу также сказать, что изменение данных очень часто требуется не потому что владелец ресурса хочет перенести свои политические взгляды на работу географического определения посетителей, а из-за того, что в отличие от того, на какой территории сайт оказывает услуги, может потребоваться размещение различных данных. Чаще всего это именно юридические причины.

Как побочный продукт от создания собственной базы, мы создали также дополнительный сервис для клиентов, которые обслуживаются по программе «Ibice:Premium». По мере заполнения базы данных стран мы собрали также кучу данных по городам регистрации сетей и провайдерам, которым данные сети принадлежат. Клиенты, которые при покупке программных пакетов отмечали соответствующий пункт в заказе, смогут получить доступ к этим данным совершенно бесплатно, но не на собственном сервере, а при подключении к нашему серверу, обслуживающему Premium-клиентов, с указанием API-ключа в формате XML. От клиента в данном случае требуется достаточно простой запрос, включающий в себя API-ключ и IP-адрес, данные по которому нужно запросить. В ответ на данный запрос клиент получает ответ, содержащий страну, на которую зарегистрирован этот адрес, город регистрации согласно данных whois и название провайдера в том случае, если оно определено и несет в себе какой-то смысл. Коммерческие сервисы берут за доступ к такой базе данных по €350, а мы предоставляем к ней доступ нашим приоритетным клиентам совершенно бесплатно и без ограничений на количество запросов (кроме технических ограничений сервера).


20.09.2014, 23:13
  GeoIP, геотаргетинг, проекты, обновление.
Просмотров: 2342.