Pull to refresh

Настройка географических ограничений на веб-ресурсе с учетом новых регионов Российской Федерации

Level of difficultyMedium
Reading time4 min
Views13K

Актуальной задачей для веб-ресурса в нынешних реалиях является установка ограничений доступа по регионам, либо географическая привязка выдаваемой информации с учетом региона. Одним из решений, которые можно использовать для этих целей, является база данных и американский сервис MaxMind GeoIP2. Сервис привлекает огромным объемом и детальностью информации, но имеет свои особенности. Так, Крым, ДНР, ЛНР, Запорожская и Херсонская области а также Севастополь указаны в базе как регионы Украины. Соответственно, если, скажем, разрешить доступ к ресурсу только с территории РФ, то эти регионы останутся не у дел.

Так я, первоначально настроив свой ресурс только на доступ с территории РФ, обнаружил, что мои друзья из Крыма и ДНР не могут получить доступ (получают специальную версию страницы, с ограниченным объемом информации). Проблема эта легко решается, и в этой статье я покажу, как именно можно простым спососбом ее решить, а также покажу действующий пример конфигурации сервера.

Читать далее
Total votes 82: ↑36 and ↓46-10
Comments88

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

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

База распространяется в двух модификациях: «Страны и города» (13Mb, после установки ~74Mb)  и «Только страны» (2Mb, после установки ~9Mb). Также в архивах находится небольшой пример использования базы данных на php.
Читать дальше →
Total votes 35: ↑31 and ↓4+27
Comments31

База GeoIP для геолокации по IP-адресу превратила в кошмар жизнь женщины в Канзасе

Reading time4 min
Views72K

Геолокация IP-адресов в мире

В часе езды от Уичито (шт. Канзас) есть маленький городок под названием Потвин, а в нём — ферма площадью 1,5 км2. Единственная жительница этой фермы, 82-летняя Джойс Тейлор, уже несколько лет подвергается нападкам, телефонным угрозам и необъяснимой агрессии людей со всего мира, визитам агентов ФБР, коллекторов долгов от Налоговой службы, карет скорой помощи в поисках жертв самоубийств и полицейских офицеров в поисках пропавших детей. Однажды кто-то оставил разбитый унитаз на дороге, в непонятной попытке что-то сказать.
Читать дальше →
Total votes 37: ↑31 and ↓6+25
Comments84

Сравнение WIPmania и MaxMind баз GeoIP

Reading time2 min
Views3.2K
В связи с появившийся альтернативой базе MaxMind решил сравнить на сколько отличаются эти базы. Сравнивается именно отличия, а не правильность/неправильность определения.
Читать дальше →
Total votes 8: ↑7 and ↓1+6
Comments2

Быстрое определение местоположения по ip в postgresql

Reading time3 min
Views14K
В этом топике я хочу рассказать о задаче, очень часто встречающейся в веб-проектах — определение местоположения по ip-адресу. Начну с того, что для того, чтобы определить местоположение пользователя — нужна некая geoip база. Приведу здесь два популярных бесплатных варианта:
IpGeoBase — очень хорошая бесплатная база, но, к сожалению, только по российским ip-адресам.
MaxMind — огромная база по ip-адресам всех стран. Предоставляют бесплатную lite-версию базы. Точность базы по российским ip-адресам не настолько хороша, как у IpGeoBase. Также предоставляют некое API для работы со своей базой, которое позволяет производить выборки очень быстро.

Допустим вы скачали эти базы и залили их в таблицы вашей БД Postgresql (сама закачка — несколько out of scope, если у кого-то возникнет желание — я могу в будущем рассказать о том, что такое команда COPY и с чем ее едят). В общем случае вы получите таблицу такой структуры:

startip endip location_id
2130706433 2130706433 1

Здесь:
startip — это начало блока ip-адресов в формате long
endip — конец блока ip-адресов в формате long
location_id — идентификатор локации (город, регион, страна и т.д., maxmind даже координаты содержит).

Задачу поставили. Теперь рассмотрим как ее решать.
Total votes 47: ↑41 and ↓6+35
Comments29

Визуализируем геоинформацию из логов на web-карте в реальном времени

Reading time9 min
Views17K


Дабы не было двусмысленностей, обозначу суть. При приёме на новую работу мне дали тестовое задание, которое кратко можно описать так: «Написать аналог Glow для геовизуализации событий входа пользователей в кастомерку интернет-магазина». Проще говоря, необходимо мониторить лог системы на предмет возникновения определенных событий и в случае оных выполнять (в данном случае) отображение точки на карте, которая будет определяться IP-адресом пользователя. Цель реализации: создать приятную на вид «игрушку» для презентационных целей, способную погрузить смотрящего в нирвану гармонии и эстетического наслаждения. Основным условием было использование в процессе разработки стека Java-технологий, чем обусловлено принятие многих решений. Кроме этого, было решено реализовать это в виде одностраничного сайта. А поскольку с Java и web я был знаком крайне поверхностно (писал в основном на C/C++), пришлось многому научиться. Что ж, будем разбираться вместе.
Статья рассчитана на интересующихся и начинающих, однако не «разжевывает» простые вещи, с которыми можно ознакомиться с помощью документации или специализированных статей. Наиболее полезные ресурсы, ссылка на исходники (распространяются по лицензии BSD) и ссылка на рабочую версию приведены в конце статьи.

Читать дальше →
Total votes 37: ↑36 and ↓1+35
Comments24

AWS Athena: GEOIP lookups

Reading time7 min
Views2.2K

PS. Это перевод моей статьи на английском. Давно я не писал на Хабре. Сразу прощу прощения, много на русском не пишу. Не скажу что у меня и английский шикарный. Но к сожалению проживание за рубежом ухудшает мой русский и медленно развивает английский.

Если вы пользуетесь AWS Athena для анализа логов, то часто хочется найти источник IP адресов. К сожалению AWS Athena не предоставляет этого из коробки. К счастью MaxMind предоставляет базы данных GeoIP таблиц, которые позволяют вычислить местоположение по IP адресам. Есть платная и бесплатная версия.

В этой статье я покажу как создать AWS Lambda функцию, которая каждую неделю будет скачивать последнюю базу данных с MaxMind на S3. Эту базу данных можно использовать в AWS Athena для написания SQL запросов для анализа, например, веб логов.

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments0

База GeoIP – страны и города

Reading time1 min
Views72K
При разработке одного проекта встала задача – определить по IP-адресу посетителя его страну и город, на русском языке. Поиск готового решения оказался безуспешным – русскоязычные базы стран можно найти (например, wipmania.com), но баз городов нет. Помощь пришла из-за границы, в лице англоязычного maxmind.com. База была приведена к нормальному состоянию (MySQL) и частично переведена на русский язык с помощью нескольких справочников (~6,000 названий, с учетом городов-тезок ~15,500).   Результат этой работы доступен для свободного скачивания.
Читать дальше →
Total votes 120: ↑101 and ↓19+82
Comments134

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

Reading time1 min
Views2.6K
Вышла в свет новая версия русскоязычной базы данных стран и городов. Основные изменения:
— база maxmind.com была объединена с базой городов России ipgeobase.ru (идея sky_lord)
— с помощью Переводчика Google были переведены на русский язык ~60,000 названий (идея neytrino), а затем с помощью Яндекс.Карт из них были отсеяны артефакты типа «Инь молодых» и «Авиаторов деревня»
— были удалены дубли и произведена оптимизация структуры базы.
Результат этой работы доступен для свободного скачивания.
Читать дальше →
Total votes 67: ↑63 and ↓4+59
Comments56

База GeoIP – страны и города, январь 2011

Reading time2 min
Views12K
Вышла в свет новая версия русскоязычной базы данных стран и городов. Основные изменения:
— для перевода названий городов использован API Карт Google (идея chernikov)
— для поиска по странам СНГ подключена база geobaza.ru (идея derketzer)
Результат этой работы доступен для свободного скачивания.
Читать дальше →
Total votes 91: ↑88 and ↓3+85
Comments49

База GeoIP – страны и города, июнь 2011 (+скрипт обновления)

Reading time3 min
Views12K
Вышла в свет обновленная версия русскоязычной базы данных стран и городов. Основные изменения:
— за счёт новой базы ipgeobase.ru повысилась точность определения городов Украины
— из бесплатной версии базы geobaza.ru исчезли города, поэтому точность определения городов других стран СНГ понизилась
— добавлен скрипт, с помощью которого вы можете самостоятельно обновлять базу (без добавления новых городов и стран)
— таблицы net_ru_2 и net_su удалены из базы, изменены примеры запросов
Результат этой работы доступен для свободного скачивания.
Читать дальше →
Total votes 88: ↑87 and ↓1+86
Comments35

Сага о геолокации и как сделать гео-вебсервис на NGINX без движка базы данных и без программирования

Reading time6 min
Views18K
Сегодня мы поднимем довольно старую тему про геолокацию по IP-адресу и новую про быстрые веб-сервисы без «языков программирования» . Также мы опубликуем готовый образ контейнера, чтобы вы за 5 минут могли развернуть такой веб-сервис у себя.

Наша компания занимается созданием Интернет-магазинов запчастей на собственной SaaS-платформе (ABCP.RU), а также у нас есть несколько связанных проектов, например, сервис поиска запчастей 4MyCar.ru.
Как и многие другие веб-проекты, мы в своё время пришли к пониманию необходимости геолокации по IP-адресу. Например, сейчас она используется на 4MyCar.ru для определения региона (при первом входе на сайт регион автоматически устанавливается именно так).



Аналогично производится выбор ближайшего к клиенту филиала магазина на сайтах клиентов платформы ABCP.

какие этапы мы прошли, как сделали свой веб-сервис и что в итоге получилось
Total votes 17: ↑12 and ↓5+7
Comments51

Security Week 15: Badlock не впечатлил, больше криптолокеров, еще одна уязвимость в iMessage

Reading time6 min
Views5.8K
Предположим, что апокалипсиса не будет. Неверный подход к безопасности новых устройств и софта не приведет к массовому выходу компьютерных систем из строя: ПасьянсОфис не упадет, светофоры не погаснут, машины с автопилотом без проблем довезут людей до дома. Это не значит, что можно кодить безответственно: никто ведь не умрет? Потрясающую историю на прошлой неделе раскопала редактор издания Fusion Кашмир Хилл. В 2002 году компания MaxMind разрабатывала новый сервис, позволяющий примерно определить координаты сетевого адресата по IP. В процессе разработки понадобилось ввести дефолтные координаты. Дело не в том, что это требовалось клиентам. В статье этот момент не раскрывается, но вполне можно представить, что так решил один из разработчиков, потому что все так делают и удобно. Чтобы система не падала от пустой переменной и не происходило деление на ноль.

В константу забили округленные (38.0000,-97.0000) координаты географического центра США и в общем-то быстро забыли про этот рутинный эпизод. А к жителям дома рядом с городком Потвин в штате Канзас через некоторое время начали приходить странные люди. Приезжали скорые. Приходили агенты ФБР в форме и в штатском. Налоговики. Коллекторы. Звонили разъяренные владельцы сайтов, которым приходил спам, и требовали прекратить сейчас же. Кто-то даже угрожал, а на аллее возле дома ночью поставили разбитый унитаз. Пожилой владелице дома и арендаторам не повезло оказаться в округленном до градусов центре страны. Все адреса, координаты которых компании MaxMind не удалось определить, указывали на дом в Канзасе, всего более шести миллионов IP. Кашмир Хилл связалась с MaxMind, и там были очень удивлены. Компания ведь всегда говорила, что координаты дает примерные, и они не должны использоваться для идентификации конкретных адресов и домов. Проблема в том, что абсолютно все, вплоть до медиков и ФБР, именно так их используют.

Предположим, что апокалипсиса не будет. И очень хорошо, что так. Но технологии все больше влияют на нашу реальную жизнь, иногда самым непредсказуемым образом. Ошибки и уязвимости в софте и железе не всегда приводят к трагедиям (хотя иногда таки приводят). Безответственная разработка медленно и почти незаметно снижает качество нашей жизни. И чем дальше мы будем идти от точки «теперь питание компьютера можно отключить» к постоянному нахождению в сетевой среде, тем больше будет новых возможностей, но и проблем тоже.

Для московских IP, кстати, та же база дает координаты Кремля. А в географическом центре России никто не живет. Перейдем к новостям недели. Предыдущие выпуски тут.
Читать дальше →
Total votes 7: ↑6 and ↓1+5
Comments2