Вышла в свет обновленная версия русскоязычной базы данных стран и городов.
База распространяется в двух модификациях: «Страны и города» (13Mb, после установки ~74Mb) и «Только страны» (2Mb, после установки ~9Mb). Также в архивах находится небольшой пример использования базы данных на php.
Точность определения страны ~99%, точность определения городов в среднем ~95%, точность определения городов Украины ~50%. Много это или мало – зависит от задач, которые собираетесь решать с помощью этой базы.
Тестовое демо – определение вашей страны и города по IP-адресу
Рабочее демо – определение вашего города в форме бронирования билетов
Для установки базы рекомендую воспользоваться программами типа mysqldumper или через ssh выполнить
mysql –p –uюзер база_данных < файл.sql
«Скрипт обновления» (~1Mb, после установки ~5Mb) адаптирован только для текущей версии базы (сентябрь 2013), обновить с его помощью прежние версии невозможно. Для обновления базы импортируйте файл geo_update_2013_09.sql (содержит две технические таблицы), скачайте свежие архивы с maxmind и ipgeobase и запустите из консоли update_maxmind.php и update_ru.php. Обновление базы городов maxmind выполняется 10-15 минут.
В справочнике стран присутствуют острова, которые не являются независимыми государствами, но значительно удалены от своих метрополий.
В справочнике городов возможны ошибки (в том числе дубли).
В базе «Только страны» есть блоки IP только европейских стран (из ipgeobase, таблица net_euro) и стран всего мира (в том числе европейских, из maxmind, таблица net_country_ip). Теоретически европейские страны должны точнее определяться по первому варианту, но практической проверки не было.
Идеи по усовершенствованию и повышению качества базы приветствуются.
Немного статистики
В текущей версии базы 54,912 населенных пунктов.
Количество населенных пунктов по разным странам:
Страна | Количество |
---|---|
США | 14,534 |
Франция | 4,957 |
Германия | 4,148 |
Италия | 3,244 |
Австралия | 2,986 |
Великобритания | 2,496 |
Испания | 2,153 |
Канада | 1,701 |
Российская Федерация | 1,284 |
Австрия | 1,045 |
Бразилия | 805 |
Польша | 775 |
Швейцария | 735 |
Япония | 725 |
Нидерланды | 691 |
Португалия | 585 |
Ирландия | 566 |
Мексика | 554 |
Швеция | 530 |
Чехия | 506 |
Китай | 492 |
Индия | 420 |
Аргентина | 396 |
Бельгия | 394 |
Греция | 370 |
Украина | 357 |
Турция | 338 |
Филиппины | 326 |
Южно-Африканская Республика | 311 |
Болгария | 289 |
Румыния | 269 |
Хорватия | 259 |
Венгрия | 258 |
Новая Зеландия | 258 |
Дания | 247 |
Норвегия | 237 |
Финляндия | 216 |
Колумбия | 214 |
Таиланд | 178 |
Индонезия | 171 |
Словакия | 157 |
Малайзия | 138 |
Чили | 133 |
Словения | 119 |
Коста-Рика | 117 |
Латвия | 102 |
Казахстан | 96 |
Перу | 96 |
Сербия | 95 |
Израиль | 95 |
Венесуэла | 94 |
Республика Корея | 85 |
Эстония | 81 |
Эквадор | 79 |
Люксембург | 79 |
Иран | 71 |
Вьетнам | 70 |
Беларусь | 70 |
Марокко | 60 |
Шри-Ланка | 59 |
Литва | 56 |
Босния и Герцеговина | 56 |
Кипр | 53 |
Пуэрто Рико | 52 |
Нигерия | 51 |
Пакистан | 49 |
Уругвай | 49 |
Тайвань | 48 |
Доминиканская республика | 45 |
Ямайка | 42 |
Алжир | 40 |
Тунис | 39 |
Сальвадор | 39 |
Армения | 38 |
Панама | 36 |
Македония | 35 |
Молдова | 34 |
Маврикий | 34 |
Исландия | 34 |
Гондурас | 34 |
Тринидад и Тобаго | 34 |
Гватемала | 33 |
В остальных странах менее 30 населенных пунктов.
I2Y
9 сентября 2013, 16:26
Ваш IP-адрес: 5.248.86.88
Страна: Украина
Город: Не определен
город – Львов
test
9 сентября 2013, 16:45
добавте на тестовой странице кнопку – правильно\не правильно и опциональный выбор правильного и быстро соберете статистку
zten
22 ноября 2013, 11:45
В таблице net_city для России 7 раз указана Москва (к примеру). И пользователь, выбрав Россию, видит в списке 7 строк с Москвой. Как их идентифицировать? Есть поле region, но что оно значит?
NetLoad
25 ноября 2013, 14:35
Справочник регионов http://dev.maxmind.com/faq/how-do-i-convert-region-codes-to-names/
Стас
29 декабря 2013, 17:09
Ваш IP-адрес: 178.137.126.142
Страна: Украина
Город: Киев
я из Запорожья ((
Кирилл
11 октября 2014, 12:54
Можно как-то подгружать в зависимости от IP адреса версию сайта? Например en и ru ?
NetLoad
11 октября 2014, 13:44
Кирилл, в таблице country есть коды стран. Поэтому можете определить страну по IP и дальше переадресовать на страницу (или поддомен) с нужным кодом страны. Это алгоритм.
Готовое решение я вам не дам, оно индивидуально для каждой CMS.