Sypex Geo – продукт для определение местоположения по IP-адресу, от создателей Sypex Dumper. Получив IP-адрес, Sypex Geo выдает информацию о местоположении посетителя – страну, регион, город, географические координаты.
Sypex Geo - распространяется по лицензии BSD, т. е. является абсолютно бесплатным.
В качестве базы данных, Sypex Geo использует бинарный файл собственного формата. Этот формат является открытым и универсальным. При разработке формата, была проделана большая работа по оптимизации алгоритма. Благодаря чему, Sypex Geo работает значительно быстрее конкурентов, потребляет меньше памяти, а также производит меньше обращений к диску (из-за чего на загруженных серверах, разница еще больше в пользу Sypex Geo).
История создания
Для системы статистики нашей Sypex CMS нужен был модуль определения страны посетителей, изначально предполагалось выбрать одно из готовых решений, в частности, рассматривалась GeoIP. Было проведено тестирование по скорости, вариант с базой IP в MySQL вскоре отпал из-за низкой производительности, а вариант с бинарной базой от GeoIP (рассматривался pure php API) оказался самым быстрым. Нам стало любопытно почему он так быстро работает и заглянули в исходники. После ознакомления было выявлено несколько недостатков данной реализации.
Один из основных недостатков в том, что для определения страны нужно 20 + n * d чтений файла (где n-количество определяемых IP, d - количество прыжков по бинарному дереву, примерно от 3 до 32). Естественно файловые операции довольно медленные, поэтому для максимальной производительности их количество желательно минимизировать.
Ради спортивного интереса был разработан свой модуль и формат бинарного файла. Скорость которого оказалась в 3-4 раза быстрее GeoIP, т.к. он содержал минимальное число обращений к файловой системе. Для выборки необходимо всего 3 + 1 * n (где n-количество определяемых IP) чтений файла.
А в 2012 году была добавлена поддержка определения городов и регионов, а также оптимизированы сам формат и API.
О сайте
На этом сайте Вы всегда сможете найти свежие версии Sypex Geo API и баз данных для него. По любым вопросам касающимся Sypex Geo обращайтесь с помощью формы обратной связи либо на форуме.
На сайте использованы иконки Yusuke Kamiyamane.