База 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, операція виконується швидше і споживає менше обчислювальних ресурсів.