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

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

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

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

    Если при тестировании демо вы обнаружили ошибку — сообщите проверяемый IP-адрес.

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


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

    Количество населенных пунктов по разным странам:
    Страна Количество
    США 28,991
    Германия 16,264
    Австралия 4,871
    Франция 4,613
    Испания 3,253
    Канада 3,074
    Бразилия 2,926
    Российская Федерация 2,301
    Швейцария 1,831
    Мексика 1,572
    Португалия 1,349
    Ирландия 1,269
    Аргентина 1,189
    Япония 851
    Польша 712
    Италия 699
    Болгария 659
    Великобритания 652
    Колумбия 540
    Украина 531
    Бельгия 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 населенных пунктов.

    Добавлено:
    Исправлена ошибка в определении некоторых российских и украинских городов.
    Метки:
    Поделиться публикацией
    Похожие публикации
    Комментарии 70
    • 0
      Привет!
      А если чел подключен с мобильника? Его IP будет правильно привязан к городу?
      • 0
        Не будет, если отъехать от места регистрации провайдерской сетки IP.
        У меня на мегафоне нарисовал Санкт-Петербург, например.
        • +3
          У МТС обычно правильно, про других опсосов не знаю.
          + Если человек пользуется мобильной Оперой, то крайний IP будет «польским» или «исландским».
          • 0
            В нашем случае Опера ни при чем. Мы напрямую ходим за контентом из приложения.
            А IP выдается оператором или базовой станцией? То есть, я в Москве с московским адресом, а в Подмосковье? А если я с МТСом подключусь из Италии?
            Кто-то исследовал эти вопросы?
            • +1
              У меня всегда при подключении через МТС определяется Орел (при фактическом нахождении в Липецке и Москве, в частности). Могу предположить, что у них одна точка входа на большой регион или вообще на всю сеть.
              • +1
                Билайн, 3G. Нахожусь в Томске, определяется Санкт-Петербург.
                • +2
                  Это проблема всех операторов. У меня при подключении через 3G обычно определяется как Екатеринбург или Санкт-Петербург (вместо Новосибирска). При этом при подключении через GPRS/EDGE все нормально.
            • +1
              Опера мини работает через свое «прокси», просто смотрите заголовок X_FORWARDER_FOR.
            • +1
              Не будет привязан к городу.
              В данном случае IP зависит от GGSN оператора связи.
              • +1
                О! Спасибо. Главное — знать правильное ключевое слово.
                Если по-простому, получается, что все GPRS-юзеры находятся внутри сетки, а внешний адрес выдается оператором из некоего общего пула, не связанного с географией.
            • +3
              Привет!
              Раньше наш Калининград определяло правильно.
              Теперь я в Абу-Даби =(
              • +24
                Мои поздравления! И как впечатления?
                • +25
                  Да чё-то всё по-старому =(
                • +2
                  Ошибка. Постараюсь вернуть вас домой.
              • +1
                А есть он-лайн сервис на основе этой базы?
                • –1
                  netload.biz/ip.php — чем вам не сервис. Элементарный парсер, вот вам и данные.
                  • 0
                    На этой странице вы можете узнать информацию только о своём IP.
                    • 0
                      Ступил согласен.
                      • 0
                        Но при использовании пары костылей всёже можно использовать)
                • +2
                  Да что ж вам не спиться то? :) Но спасибо :)
                  • +6
                    Страна большая, не все живут в дефолт-сити :)
                    • +3
                      Это да :)) но мало кто вообще во вменяемом состоянии 1 января :)) а тут уже статьи публикуют :))
                      думал я один трезвым новый год встретил :)
                    • +16
                      Особенно оригинально Ваш вопрос звучит именно с мягким знаком…
                      • 0
                        Возьму на себя смелость, хоть и боюсь пострадать кармой.
                        Коллеги!
                        Для проверки правильности написания глаголов в русском языке используйте, пожалуйста, проверочный вопрос: что делать? что сделать? и т.п.

                        что же делается? — что же Вам не спится?
                        что же сделать? — что же Вам не спиться?


                        Ну и кстати, Вам всегда надо писать с большой буквы.

                        Это русский язык.

                        Я без наезда на Украину, Беларусь, Казахстан — понятно, что там перестали учить русскому языку. Вероятно, и в некоторых городах РФ не учат. Но в Санкт-Петербурге-то?
                        • +5
                          Ну и кстати, вамс большой буквы писать не надо.
                          • +1
                            Да, Вы правы.
                            вамс — с маленькой ;-) (что бы это слово ни значило).
                            Я погорячился. Тут мне один товарищч недавно написал: «понимаешь, я пишу вы только тому, кого уважаю». Я понял, что раз человек это пишет мне, то он меня не уважает by default. О чем можно дальше говорить с таким корреспондентом? А если по делу, то вот:

                            Писать Вам надо с большой буквы в личном обращении — вот инструкция.

                            А инструкциям великих писателей всех времен и народов безоглядно верить не стоит.
                            • +3
                              > Да что ж вам не спиться то? :) Но спасибо :)

                              1) капитан пробежал и подсказал, что обращались к аудитории, а не лично

                              2) очень показательно, что среди рекомендаций словарей и справочников нет ни одного года ранее 1998

                              3) twitter.com/#!/ImGearHead/status/153465156557475841/photo/1
                              • +1
                                • –1
                                  хе-хе: Татьяна пишет Онегину письмо по-французски, так как «она по-русски плохо знала». Это обратный перевод с французского... Но на самом деле еще зависит от года издания книги и редактора издательства.

                                  Что касается 1998, то это же просто — денег нет на издание апдейтов. Пока их нет, мы должны придерживаться старых протоколов правил. Язык можно сколько угодно коверкать и изменять (можно вообще русский заменить олбанским, феней или матерным), но есть некоторые правила. И законопослушный пользователь/ юзер/ человек вообще-то их должен придерживаться. Не сочтите меня занудой, но просто неприятно читать неграмотно написанные тексты. И это, кстати, еще одна из причин проблем хабра.
                                  • +1
                                    что касается 1998, я сказал ранее, а не позднее. там только свежеисправленные под современную деградацию издания.

                                    по части татьяны, перечитайте письмо. ужели вы думаете, что пушкин пытался повторить лексику и орфографию плохо говорящей по-русски девушки? там бы уж точно побольше было ошибок. издание 1986г.
                            • +1
                              Эх… мне в школе даже по математике ставили 4, потому что считал я всё правильно, но ответы оформлял с орфографическими ошибками :)
                              • 0
                                Ну, а вот это уже глупость. Основной предмет у тебя был математика. Значит проверять нужно было исключительно математику.

                                P.S. А вот Warning на полях можно было бы и написать. Так что ты незаконно страдал я считаю.
                                • 0
                                  Дак мне так и говорили :)) Решено правильно, но ставлю 4… Учи русский :)
                              • –1
                                Всегда писать «Вам» с большой буквы НЕ надо.
                                Не учите тому, в чём не разбираетесь.
                            • +1
                              Спиться человеку пожелали. Злой вы! :)
                            • 0
                              За базу спасибо, но скажите чем вам не угодили функции ip2long и long2ip?
                              • +1
                                На момент сборки первой версии базы я не знал об этих функциях. Сейчас лень править файл примеров.
                                Сам использую sprintf("%u", ip2long($ip));
                              • +1
                                Исправлена ошибка в определении некоторых российских и украинских городов.
                                • +2
                                  Отлично, я снова в Калининграде! Спасибо за базу, давно ей пользуюсь и дальше планирую.
                                • +1
                                  Челябинск:

                                  Ваш IP-адрес: 46.147.227.22
                                  Страна: Не определена
                                  Город: Не определен
                                  • –1
                                    Ошибка, исправил.
                                  • +1
                                    IP: 78.106.104.XXX определяется как Москва. На самом деле, Ярославль
                                    • +1
                                      IP 176.98.7.XXX не определяется. Хотя на многих сайтах узнает откуда.
                                      Васильков под Киевом, Украина. Можно определять как Киев =)
                                      • –3
                                        Бруклин, США.
                                        Определилось верно.
                                        74.90.72.xx
                                        • +1
                                          Спасибо за базу. А нет ли случаем версии с одной только Россией и ее городами?
                                        • +1
                                          В Украине, провайдер Peoplenet 3G, в Днепропетровской области показывает Киев.
                                          • +1
                                            Существует ли возможность запретить определять мой населенный пункт? Я не хочу чтобы вы узнавали откуда я по моему ip. Мне кажется что это мое право. Нечестно, когда в открытом доступе есть базы по которым можно ограничить в правах человека на основе его ip адреса
                                            • +1
                                              Возьмите IP не привязанный географически. А какие ваши права нарушаются?

                                              • 0
                                                Как добыть список ip не привязанных географически?
                                                • 0
                                                  Спутниковый интернет, например.
                                              • +1
                                                Используйте прокси (vpn, ssh-туннель и т.п.). Вариант «Сделай сам»
                                              • +1
                                                Курский IP, белый. Интернет проводной ex-NetByNet (Мегафон). Сервис сказал, что я в Москве.
                                                • 0
                                                  У нас после перевода ex-Inetera на стандарты НБН по большей части общий пул IP-адресов для Москвы и ЦФО. Из вне никак не различить, откуда вы.
                                                • 0
                                                  \\Если при тестировании демо вы обнаружили ошибку — сообщите проверяемый IP-адрес.
                                                  \\

                                                  Ваш IP-адрес: 80.21.88.53
                                                  Страна: Италия
                                                  Город: Не определен

                                                  Правильный город: Болонья.
                                                  • 0
                                                    Посмотрел на размеры этой базы и почему-то подумал про скорый приход IPv6. С ними то что делать? Или там нет такого бардака с выдачей блоков адресов?
                                                    • 0
                                                      А для сайтов предназначенных для США можно использовать эту базу?
                                                    • 0
                                                      Я из Херсона. А определило как Киев =)
                                                      • 0
                                                        Я зашел из Сан-Хуана, Пуэрто-Рико, США. Пуэрто-Рико определило, а город (столицу) нет. (
                                                      • 0
                                                        Случайно заметил ошибку, не знаю уж, насколько маленькую:

                                                        В таблице NET_CITY:
                                                        id = 36837; country_id = 20; name_ru = Cанкт-Петербург; name_en = Zelenogorsk
                                                        • 0
                                                          id=322882, name_ru = Набережные Челны
                                                          На английском теперь правильное название (полное, вместо Chelny), но теперь потерялся region (пустое значение), должно быть 73 — Татарстан
                                                          Предыдущий id=77694, сейчас он сместился так сильно, из за региона я так полагаю.
                                                          • 0
                                                            Поясните, пожалуйста, почему 73 — это татарстан? У меня так и не получилось найти связь поля region с чем-либо еще.
                                                            • 0
                                                              т.к. в предыдущей версии 73 стояло у всех городов в Татарстане
                                                              Выставлялось видимо на основе баз geonames.org

                                                              download.geonames.org/export/dump/ здесь есть RU.zip (11Mb), формат:
                                                              484048 Respublika Tatarstan ... 55.33333 ... RU RU 73 ... Europe/Moscow ... 2012-01-16
                                                              

                                                              — но я у них еще файл скачивал region.txt, там только локаль-регионы были, формат:
                                                              ...
                                                              RU,48,"Moscow City"
                                                              RU,66,"Saint Petersburg City"
                                                              ...
                                                              RU,73,"Tatarstan"
                                                              ...
                                                              
                                                              • 0
                                                                Ясно, спасибо.
                                                          • 0
                                                            Спасибо! Пользуюсь. Хорошая база.
                                                            • 0
                                                              Спасибо!
                                                              а насколько реально по IP определить координаты? широту и долготу?
                                                              • НЛО прилетело и опубликовало эту надпись здесь

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