Про продукт

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.