База GeoIP – страны и города, июнь 2011 (+скрипт обновления)

Вышла в свет обновленная версия русскоязычной базы данных стран и городов. Основные изменения:
— за счёт новой базы ipgeobase.ru повысилась точность определения городов Украины
— из бесплатной версии базы geobaza.ru исчезли города, поэтому точность определения городов других стран СНГ понизилась
— добавлен скрипт, с помощью которого вы можете самостоятельно обновлять базу (без добавления новых городов и стран)
— таблицы net_ru_2 и net_su удалены из базы, изменены примеры запросов
Результат этой работы доступен для свободного скачивания.

База распространяется в двух модификациях: «Страны и города» (21Mb, после установки ~122Mb)  и «Только страны» 2Mb, после установки ~13Mb). Также в архивах находится небольшой пример использования базы данных на php.

Точность определения страны ~99%, точность определения городов в среднем ~95%.  Много это или мало – зависит от задач, которые собираетесь решать с помощью этой базы.

Демо – определение вашей страны и города по IP-адресу

Для установки базы рекомендую воспользоваться программами типа mysqldumper или через ssh выполнить
mysql –p –uюзер база_данных < файл.sql

«Скрипт обновления» (~300Kb, после установки ~1Mb) адаптирован только для текущей версии базы (июнь 2011), обновить с его помощью прежние версии невозможно. Для обновления базы импортируйте файл geo_update_2011_06.sql (содержит две технические таблицы), скачайте свежие архивы с maxmind и ipgeobase (см. readme.txt) и запустите из консоли update_maxmind.php и update_ru.php. При обновлении базы городов maxmind выполняется ~4 миллиона select-ов и ~2 миллиона insert-ов, поэтому операция требует значительных ресурсов и времени (~30-60 минут). Обновление базы городов maxmind выполняется 20-30 минут.

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

В справочнике городов возможны ошибки (в том числе дубли).

В базе «Только страны» есть блоки IP только европейских стран (из ipgeobase, таблица net_euro) и стран всего мира (в том числе европейских, из maxmind, таблица net_country_ip). Теоретически европейские страны должны точнее определяться по первому варианту, но практической проверки не было.

Идеи по усовершенствованию и повышению качества базы приветствуются.

Немного статистики


В текущей версии базы 94,615 населенных пунктов.

Количество населенных пунктов по разным странам:
СтранаКоличество
Германия18,468
США15,798
Италия6,645
Австрия6,417
Испания5,721
Австралия5,134
Франция4,651
Российская Федерация3,287
Канада3,027
Польша2,844
Бразилия2,342
Швейцария1,814
Бельгия1,589
Япония1,445
Португалия1,289
Ирландия1,128
Аргентина1,086
Мексика1,069
Украина800
Китай724
Болгария615
Великобритания585
Колумбия545
Индия359
Люксембург359
Южно-Африканская Республика333
Норвегия330
Турция304
Новая Зеландия280
Венгрия262
Сербия221
Чили203
Казахстан194
Филиппины188
Чехия176
Румыния171
Республика Корея166
Словакия161
Швеция159
Нидерланды157
Хорватия141
Эквадор141
Финляндия134
Гватемала126
Венесуэла123
Гондурас121
Беларусь102
Иран96
Греция96
Литва95
Израиль91
Латвия89
Эстония85
Молдова85
Тринидад и Тобаго79
Перу69
Барбадос56
Ямайка56
Коста-Рика56
Индонезия56
Доминиканская республика53
Маврикий52
Дания51
Египет46
Марокко43
Македония41
Армения40
Нигерия39
Вьетнам38
Алжир38
Уругвай36
Панама36
Сальвадор33
Словения30
Малайзия30

В остальных странах менее 30 населенных пунктов.

Добавлено 09.06.2011
Оптимизирован скрипт обновления базы maxmind, операция выполняется быстрее и потребляет меньше вычислительных ресурсов.