Открыть список
Как стать автором
Обновить

Определение города по IP-адресу

Разработка веб-сайтов
Такая потребность может возникнуть при геотаргетинге информации, работе картографических сервисов, анализе статистики посещений сайта.

Задача решается следующим образом.

1. Выкачиваем и правильно складываем базы whois.
2. Для каждой подсети определяем город.
3. Пакуем базу в бинарный файл.

Но зачем это все делать самим, когда уже есть готовые решения. Одно из них (полную версию) я выкладываю сюда для теста и получения фидбэка.

А теперь немного более подробно по задачам.

1. Выкачиваем и правильно складываем базы whois — для этого пишем многопоточную качалку-парсер, которая выбирает всю значимую информацию в диапазонах 0.0.0.0-255.255.255.255.
Сложности — правильно вычислять значимые диапазоны подсетей и договориться с сервисами whois чтобы не забанили и разрешили делать соответствующую нагрузку.
Результат — примерно 20 Гб записей.

2. Для каждой подсети определяем город — для этого пишем параллельно работающую распознавалку, которая с помощью словаря вариантов написаний городов, телефонных кодов и прочих признаков определяет город.
Сложности — создание и поддержка словарей вариантов, большие объемы информации.
Результат — несколько миллионов выделенных и распознанных подсетей.

3. Пакуем базу в бинарный файл — для этого паковщик пробегает все диапазоны и собирает данные в бинарное дерево возвращающее по IP-адресу запись о городе, координатах, регионе, стране, в том числе национальные написания.
Сложности — составление словарей с национальными написаниями названий городов, оптимизация алгоритмов паковщика.
Результат — бинарная база примерно 11 Мб.

Что получаем в итоге:
— геобаза по всему миру;
— доступная цена;
— честная, не ворованная база соответствий IP-адрес -> город;
— названия городов, стран, регионов на русском;
— возможность локализации базы (технология позволяет использовать национальные алфавиты, особенности в названиях);
— улучшенная поддержка exUSSR (никаких тебе городов — ul.Lenina и т.д.);
— интерфейсы для работы с бинарной базой на c, php, perl;
— отработана технология построения различных вариантов/версий базы.

А вот и сама ссылка на полную версию CNGeoip для тестирования — www.cn-software.com/datastore.php?7ae24a71bad7583b551289f0b03062c9
Ссылка действует до 20 июня 2008 года.

В качестве фидбэка хочется получить предложения по улучшению, репорты об ошибках (их лучше слать сюда www.cn-software.com/ru/contacts), предложения по стартапированию продукта (реально ли это? или только веб 2.0 нынче в почете).

добавлено.
Да, коллеги, нам не жалко если до 20 июня (пока действует ссылка), кто-то кроме хабровчан скачает модуль и отпишет пожелания — поделитесь инфой с коллегами, вдруг кому полезно будет.
Теги:CNGeoipмодуль географииgeoipipphpгородаip-адрес
Хабы: Разработка веб-сайтов
Всего голосов 38: ↑32 и ↓6 +26
Просмотры33.9K

Комментарии 84

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Похожие публикации

Веб-разработчик (1С-Битрикс)
от 65 000 до 90 000 ₽Пиксель ПлюсМожно удаленно
Веб-разработчик PHP (middle)
от 80 000 до 110 000 ₽SmartSitesМожно удаленно
Веб-разработчик (PHP)
от 100 000 до 250 000 ₽BitrixКалининград
Веб-разработчик на Битрикс/Bitrix
от 100 000 до 150 000 ₽АНО "Московский спорт"МоскваМожно удаленно
PHP-разработчик (Bitrix24+нативная разработка)
от 70 000 до 120 000 ₽Integrator.DigitalМожно удаленно

Лучшие публикации за сутки