База GeoIP – страны и города, сентябрь 2013

    Вышла в свет обновленная версия русскоязычной базы данных стран и городов.

    База распространяется в двух модификациях: «Страны и города» (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
    Поделиться публикацией
    Похожие публикации
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 31
    • 0
      Ваш IP-адрес: 5.129.246.*
      Страна: Российская Федерация
      Город: Новосибирск

      Мимо :(

      Причем по второй ссылке уже выдал Нижневартовск, что ближе к истине, но мимо.
      • 0
        Такая же фигня, оба раза мимо… :(
        • 0
          С дома всё верно определил.
          вспоминается ситуация когда на Utel сидел, ныне RT, в зависимости от фазы луны выдавались адреса, которые были приписаны то Нижневартовску, то Екатеринбургу, то Ханты-Мансийску. Так что вот непонятно, как же определить положение более менее точно, если только использовать LocationAPI как помощник.
        • 0
          удалено…
          • 0
            Мимо.
            Определил, что я в Краснодаре. А я в Анапе.
            • 0
              У Вас Ростелеком? Йота?
          • +2
            Просьба — пишите об ошибках определения вашего города. Можно без подробностей. Нужна реальная статистика ошибок.
            На данный момент тестовую страницу посетили примерно 1100 человек.
            • 0
              67.175.165.20 River Grove, а не Elmwood Park

              2ip.ru тоже мимо
            • 0
              Ваш IP-адрес: 81.198.14.2**
              Страна: Латвия
              Город: Не определен

              Пару лет назад написал свой «велосипед» для определения местонахождения пользователя с точностью до города, основанный на запросах к двум сервисам — smart-ip.net и 2ip.ru. Насколько могу судить, пока что всё работает.

              P.S. Кстати, 2ip.ru сейчас мой город определил — Daugavpils.
              • 0
                Вы делаете запросы в реальном времени? Какая производительность?
                • 0
                  хреновая там производительность. Веб-сервисы в режиме реального времени нет смысла использовать, только двоичные таблицы в конфигах.
                  • +1
                    Смысл такой: когда пользователь заходит на сайт, проверяется кука. Если куки нет, тогда через AJAX идет запрос к скрипту, который проверяет, есть ли этот IP в базе и сопоставлена ли ему страна и город. Если сопоставление есть, устанавливается кука и вопрос исчерпан. Если же в базе для этой айпишки нет адреса, либо если он определен более 180 дней назад, тогда идет обращение к smart-ip.net и 2ip.ru. Если данные от них удалось получить, тогда запись в базе обновляется и устанавливается кука. Обычно данные получить удается, в противном случае ставится временная кука (на пару часов), которая запрещает повторять попытки проверки IP адреса.
                    Ну и периодически просматриваем базу, что-то в ней правим, проверяем вручную. Но в целом работает вполне удовлетворительно.
                • 0
                  Тестовое демо попало: Брянск

                  Рабочее демо с авиабилетами не угадало: Белгород
                  • 0
                    Вероятно, в Брянске нет или почти нет регулярных рейсов.
                  • 0
                    Тестовое демо попало: Николаев
                    Рабочее демо выдало соседний Херсон
                    • 0
                      В системе нет регулярных рейсов в/из Николаев, поэтому подставился Херсон.
                    • 0
                      Мимо…

                      Ваш IP-адрес: 95.79.87.2**
                      Страна: Российская Федерация
                      Город: Великий Новгород

                      А я в Нижнем Новгороде.
                      • 0
                        Отличное обновление, как раз делаю благотворительный проект и искал актуальный геоип-дамп. Если проект заживет — будем считать что вы тоже приняли участие в благотворительности ;)
                        • +3
                          Какая лицензия у этой базы?
                          • +1
                            Диапазоны IP взяты из maxmind и ipgeobase. У maxmind Creative Commons Attribution-ShareAlike 3.0 Unported License, у ipgeobase не вижу лицензию.
                          • 0
                            ipgeobase, похоже, почил. Последнее обновление 13 августа.
                            • +2
                              Нда…
                              Ваш IP-адрес:79.134.219.2**
                              Страна: Эстония
                              Город: Санкт-Петербург
                              • 0
                                Неудобно получилось.
                                Санкт-Петербург конечно в России (в таблице ID 32497).
                                Наложились 2 ошибки — неверные данные в таблице net_euro и логическая ошибка в скрипте примера. По ipgeobase (таблица net_euro) определилась страна Эстония. По maxmind определился город Санкт-Петербург, но страна осталась Эстонией.
                                Скрипт примера поправил. Данные ipgeobase перепроверю к следующей сборке.
                              • 0
                                Оба демо город определили верно (Улан-Удэ), спасибо за базу!
                                • 0
                                  Ваш IP-адрес: 194.44.171.*
                                  Страна: Украина
                                  Город: Львов

                                  Мимо. Главный офис моего провайдера во Львове. А я километров 200 в стороне.
                                  • 0
                                    Бердичев? Симферополь? Так мать городов русских еще никто не попускал.
                                    Если база не может определить киевский ай-пишник одного из крупнейших провайдеров столицы, то ценность данной базы стремится к нулю.

                                    P.S. Хорошо еще, что Украину угадали, а не указали Эквадор, как уверяет наша опозиция и их ручные хомячки.
                                    • 0
                                      2ip.ru тоже говорит, что мой офис в Бердичеве (хотя дома все определяет правильно — Киев).
                                      Видимо на нашей проходной таки есть скрытая пространственная чревоточина :)
                                    • +1
                                      Года полтора назад сотрудники Билайна Россия (Домашний интернет) говорили, что пул IPшников на всю страну един и привязки к городу нет.
                                      • 0
                                        Раз уж пишите
                                        Идеи по усовершенствованию и повышению качества базы приветствуются.

                                        Может, сможете добавить региональную разбивку, пожалуйста?
                                        • 0
                                          Спасибо

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