Pull to refresh

Comments 56

Страну правильно а вот город не распознала.
GeoIPCityLite мой город определяет, а эта база нет.
Аналогично. Сургут Vs. Ханты-Мансийск — везде не работает как хотелось бы, Сургут в пролете (УралСвязьИнформ). Хотя там на самом деле все не просто :) Но, имхо, возможно увеличить процент попаданий.
хм. все равно ж она меняется, обновляется, как ее поддерживать то
Как написано в другом подобном сервисе, можно поставить базу локально, но для актуальности используйте наш сервис и наш апи онлайн.
Безусловно. Вижу в логе неудачных проверок несколько московских и питерских диапазонов, которых не было в базе ipgeobase.ru два дня назад.
Планирую делать периодические обновления.
У меня в профиле город стоит проще было оттуда взять…
Спасибо за хорошую новость. В нескольких проектах использую GeoIP. Очень доволен.
По какому принципу происходит объединение двух баз?
По совпадению названий городов и (в случае тезок) регионов. Российские диапазоны в отдельной таблице. Справочник городов общий.
Ваш IP-адрес: 46.73.60.53
Страна: Россия
Город: Не определен

по идее Москва
а у меня наоборот. ipgeobase.ru только Украина пишет, а netload.biz и город верно определил.
И у меня город не определил. Из 15 комментаторов я четвертый такой. Мне кажется что процент попадания поменьше чем 98%
Увы, Вы правы. Обнаружились новые диапазоны российских ip (в основном Москва и Питер), которых не было в базе на момент сборки. После НГ сделаю обновление.
Не рекомендую устанавливать базу городов на виртуальный хостинг, не выдержит нагрузки.

проблему с индексами таки не решили
Таки в предыдущем топике и в личном сообщении я просил Вас показать правильное (на Ваш взгляд) решение проблемы с индексами. А в ответ тишина. Критиковать – это мы все умеем.
Например, так и сделано

select * from (select * from net_ru where begin_ip<=$int order by begin_ip desc limit 1) as t where end_ip>=$int

Ключ по begin_ip (в прошлой версии было иначе)
Да, извиняюсь. Поступил как тру-лоровец.
Однако, зачем это обернуто еще одним select? если данные разбиты на непересекающиеся диапазоны, то ответ будет всегда один.
Диапазоны не пересекаются, но есть «дыры», пустоты между диапазонами, в которые может попасть (и даже часто попадает) первое условие. Без второй проверки в такой ситуации запрос вернет соседний диапазон, что не правильно.
Можно реализовать вторую проверку на стороне скрипта (php и т.п.), но я решил оставить эту логику в sql.
Так пусть диапазонов не будет.
А как без них?

На примере, для чего нужна вторая проверка
IP 89.218.220.231 (Казахстан)
Запрос
select * from (select * from net_ru where begin_ip<=1507515623 order by begin_ip desc limit 1) as t where end_ip>=1507515623
ничего не возвращает, потому что IP нет в российских диапазонах
А если убрать второе условие, то вернется соседний диапазон и будет сделан неверный вывод, что IP из Москвы
То есть, пусть не будет дыр. Все дыры припишите в Страну Нуляндию.
Нерационально. Дыр много, затыкание каждой приведет к большим накладным расходам.
Это не очевидно. Ведь создание временных таблиц это тоже накладные расходы.
По-моему, проблемы нет. Проблема в том как вы лично интерпретируете план.
Оценка EXPLAIN действительно показывает кучу строк, но судя по данным SHOW STATUS строки не достаются на самом деле.
Если будет время, дома посмотрю текущее решение и расскажу как решили сами.
Странно, что maxmind мой город определяет, а ваш сервис — нет
Для перевода попробуйте не google.translate, а google.geocoding (тыц).
А API будет? Типа, я передаю IP, а вы мне местоположение в клевом формате типа json\xml?
API обсуждалось в предыдущем топике. Где бы взять сервер с безлимитным каналом?
За ссылку спасибо.
Мастерхост счас предлагает 1Тб бесплатного трафика в месяц. Если на запрос не больше 1Кб (ну всё же json\xml все дела), то это 1 млрд. запросов. Это на 385 запросов в секунду. Должно хватить.
В этот раз и страну и город (Ростов-на-Дону) распознал верно.
у меня определилась Москва, я нахожусь в Питере
возможно виновата Yota (IP зарегистрирован как Московский)
домашняя сеть определилась нормально
Надо Йоте уже чтонить делать с этим.
Может сегодня этот ИПи СПб,
а послезавтра его отдадут Московским друзьям

Йота не дает постоянных айпишников.
а «Великий Новгород» когда-нибудь станет уже Нижним Новгородом?.. я живу в последнем
Когда выводили один портал в регионы все думал что за город. Спасибо. Теперь знаю.
У меня на входе был список городов от менеджера и я с ним сводил базу максмаинд. Набережные челны у них до сих по звались Брежнев.
UFO just landed and posted this here
Работает из коробки и работает быстро (если индекс базы умещается в key_buffer).
«Родной» язык — это какой?
UFO just landed and posted this here
PHP с большими файлами работает относительно медленно, а на Perl я так и не подсел, поэтому с бинарниками помочь не смогу.
На моем VPS запросы к базе отрабатывают быстро (Apache создает гораздо большую нагрузку). Но размер базы (и особенно индекса) немаленький, на виртуальном хостинге таких клиентов не любят. Вы можете попробовать её на виртуальном хостинге, но потом не говорите, что я вас не предупредил.
На досуге посмотрю базу по вашей ссылке, но не верю, что города всего мира можно уместить в 4 метра.
Хорошая база, правда судя по координатам IP мой комп расположен в Колокольне Ивана Великого на Красной площади:D
Исправлена ошибка в базе «Страны и города», файл обновлён.
Ваш IP-адрес: 217.77.210.90
Страна: Украина
Город: Не определен

Упс… живу в Николаеве — а это не последний областной центр…
В базе maxmind Украина представлена слабо. Если подскажете аналог ipgeobase.ru для украинских IP-адресов, то постараюсь исправить ситуацию.
UFO just landed and posted this here
если бы вы на постоянной основе предоставляли такие данные, то это имело бы смысл, поскольку адреса постоянно меняются
Ваш IP-адрес: 95.135.158.249
Страна: Украина
Город: Львов


Уже ближе, но всё равно промазало. На этот раз где-то 1000-1200 км :)
Если я не ошибаюсь сайт yandex.ru делает это автоматически.
А вы не думали выложить dump на куда-нибудь, где можно отслеживать обновления в файле? Что-то на подобии on-line VCS но для больших (77 Mb) файлов.
Уважаемый Netload, я готов влиться в проект. Размещу API на быстром сервере, сделаю версию для MongoDB. Но при этом я хочу выложить исходники и саму базу под лицензией BSD (open source). Если вам это интересно, напишите мне пожалуйста.
Интересно. Отправил личное сообщение.
Sign up to leave a comment.

Articles