cnsoftware ([info]cnsoftware) wrote,
@ 2007-11-09 11:20:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Entry tags:cngeoip разработка

CNGeoip - база географии IP<->город
Задача определения города пользователя по IP адресу возникает не так редко как кажется, это и анализ статистики, таргетинг баннеров, автоматическая настройка профайлов пользователей и т.д.
Базу географии найти не то чтобы сложно - накладно.
Реальное качество есть у базы от MaxMinda (это та которую все юзают, но не платят (GeoIPCity :) ). Цена этой базы внушает, за тысячу баксов в год переваливает.
Но вот Россия и СНГ покрыты там с погрешностями, порой смешными. Типа город - ул. Ленина и т.д. Ну в общем все это и так знают.

Давно стали думать чтобы сделать свое решение. Поняли почему берут деньги Максмайндовцы. :)


Задач тут встало несколько:
- Слить whois и сделать автоматическую обновлялку;
- Собрать словарь городов с синонимами, переводом, координатами и деревом страна-регион-область-город-улица;
- Написать парсер хуиса и получать осмысленный результат по диапазону адресов;
- Разработать быстрый формат базы без привязки к платформе, ОС и т.д.

Самая простая задача - последняя. Сделали красиво и быстро 800 выборок из базы в секунду мы тестили. Может и больше можно.
Слить хуис тоже понятно как, но это в любом случае куча времени да и объем исчисляется десятками гигабайт. При этом надо получить разрешение на слив. А то забанят за милую душу. Разрешение могут и не дать.

А вот задачи номер 2 и номер 3 - никто и никогда за Вас не решит. Словарь надо собирать из кучи источников, а парсер должен быть высокопроизводительным и требует полуинтеллектуальных алгоритмов.

То что получается у нас лежит здесь -

CNGeoip - модуль определения города и страны по IP-адресу

Это третья версия, по качеству и по подходу. :-) В октябре сделаем 4 (она уже делается). Вот это будет прорыв! Надеемся получиться качество не хуже Максмайнда, а по эксСССР лучше!



Create an Account
Forgot your login?
Login w/ OpenID
English • Español • Deutsch • Русский…