Вышла в свет обновленная версия русскоязычной базы данных стран и городов. Основное изменение – удалено большое количество дублей городов.
База распространяется в двух модификациях: «Страны и города» (23Mb, после установки ~130Mb) и «Только страны» 2Mb, после установки ~12Mb). Также в архивах находится небольшой пример использования базы данных на php.
Точность определения страны ~99%, точность определения городов в среднем ~95%. Много это или мало – зависит от задач, которые собираетесь решать с помощью этой базы.
Тестовое демо – определение вашей страны и города по IP-адресу
Рабочее демо – определение вашего города в форме поиска билетов
Для установки базы рекомендую воспользоваться программами типа mysqldumper или через ssh выполнить
mysql –p –uюзер база_данных < файл.sql
«Скрипт обновления» (~300Kb, после установки ~1Mb) адаптирован только для текущей версии базы (декабрь 2011), обновить с его помощью прежние версии невозможно. Для обновления базы импортируйте файл geo_update_2011_12.sql (содержит две технические таблицы), скачайте свежие архивы с maxmind и ipgeobase и запустите из консоли update_maxmind.php и update_ru.php. Обновление базы городов maxmind выполняется 20-30 минут.
В справочнике стран присутствуют острова, которые не являются независимыми государствами, но значительно удалены от своих метрополий.
В справочнике городов возможны ошибки (в том числе дубли).
В базе «Только страны» есть блоки IP только европейских стран (из ipgeobase, таблица net_euro) и стран всего мира (в том числе европейских, из maxmind, таблица net_country_ip). Теоретически европейские страны должны точнее определяться по первому варианту, но практической проверки не было.
Идеи по усовершенствованию и повышению качества базы приветствуются.
Немного статистики
В текущей версии базы 87,501 населенных пунктов.
Количество населенных пунктов по разным странам:
Страна | Количество |
---|---|
США | 28,991 |
Германия | 16,264 |
Австралия | 4,871 |
Франция | 4,613 |
Испания | 3,253 |
Канада | 3,074 |
Бразилия | 2,926 |
Российская Федерация | 2,258 |
Швейцария | 1,831 |
Мексика | 1,572 |
Португалия | 1,349 |
Ирландия | 1,269 |
Аргентина | 1,189 |
Япония | 851 |
Польша | 712 |
Италия | 699 |
Болгария | 659 |
Великобритания | 652 |
Колумбия | 540 |
Украина | 469 |
Бельгия | 447 |
Китай | 401 |
Люксембург | 387 |
Индия | 365 |
Австрия | 346 |
Турция | 306 |
Сербия | 293 |
Южно-Африканская Республика | 292 |
Чили | 281 |
Венгрия | 269 |
Казахстан | 266 |
Новая Зеландия | 262 |
Чехия | 216 |
Румыния | 215 |
Алжир | 190 |
Хорватия | 170 |
Венесуэла | 144 |
Беларусь | 138 |
Молдова | 129 |
Греция | 128 |
Перу | 126 |
Литва | 115 |
Эстония | 115 |
Швеция | 113 |
Республика Корея | 112 |
Гватемала | 108 |
Филиппины | 101 |
Израиль | 99 |
Латвия | 93 |
Сальвадор | 92 |
Нидерланды | 88 |
Иран | 87 |
Пуэрто Рико | 82 |
Эквадор | 78 |
Доминиканская республика | 75 |
Коста-Рика | 74 |
Марокко | 73 |
Словакия | 70 |
Индонезия | 69 |
Пакистан | 67 |
Гондурас | 66 |
Тринидад и Тобаго | 63 |
Маврикий | 61 |
Финляндия | 59 |
Босния и Герцеговина | 59 |
Уругвай | 52 |
Нигерия | 52 |
Македония | 51 |
Египет | 50 |
Ямайка | 50 |
Панама | 49 |
Тунис | 48 |
Парагвай | 47 |
Кот-д’Ивуар | 45 |
Армения | 44 |
Никарагуа | 40 |
Вьетнам | 38 |
Барбадос | 38 |
Словения | 37 |
Малайзия | 37 |
Узбекистан | 34 |
Ирак | 31 |
В остальных странах менее 30 населенных пунктов.
Добавлено 01.01.2012
Исправлена ошибка в определении некоторых российских и украинских городов.
Юрий
3 февраля 2012, 16:13
Табличку регионов бы к этой базе было-бы замечательно.
Хотелось бы видеть область а не только город.
Денис
1 марта 2012, 17:08
Ощущение, что не хватает таблицы net_regions с названиями регионов и областей, код которых указан в таблице net_city в поле region.
Также неплохо добавить флаг для города «областной центр», и совсем уж на будущее – численность населения.
NetLoad
2 марта 2012, 13:10
Подскажите, где найти эту информацию.
Паша
11 марта 2012, 20:38
http://www.geonames.org/ нужно немного поломать голову, но запользовать вполне можно
Денис
7 июня 2012, 17:25
Пиздец какой-то а не база.
Москва в таблице net_ru по ip определяется как 23541, а в базе net_city под таким номером.. ничего нет! Москва в net_city же имеет 49849.
Я боюсь теперь этой базы, если самый крупный город имеет такой косяк, то что с другими городами ?
Денис
7 июня 2012, 18:48
Вообщем основная проблема в том что в net_t_city поле link_id не совпадает с полем id в net_city
Увидеть список проблемных городов (в России) можно с помощью select tc.name,tc.district,tc.link_id,r.regname,c.* from net_t_city tc left join net_city c on (c.name_ru=tc.name) left join net_reg r on (c.region=r.Id)where link_id IN (select DISTINCT(nr.city_id) from net_ru nr where city_id not in (select id from net_city)) and country_id=20 and tc.district=r.regname
Максим
15 августа 2012, 10:11
Помогите, пожалуйста!!!! Напишите пошагово как обновить базу
NetLoad
15 августа 2012, 10:23
Максим,
1. Импортируете файл geo_update_2011_12.sql
2. Скачиваете файлы http://geolite.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip и http://geolite.maxmind.com/download/geoip/database/GeoLiteCity_CSV/GeoLiteCity_20120807.zip , распаковываете
3. Запускаете из консоли скрипты update_maxmind.ph и update_ru.php