Загрузка...
Загрузка...
Принципы работы IP-геолокации: базы данных, точность, применение в безопасности, аналитике и персонализации. Практическое руководство.
Что такое хеш-функции, как работают MD5, SHA-1, SHA-256, SHA-512. Примеры использования, сравнение алгоритмов и онлайн-генератор хешей.
БезопасностьПроверка надёжности пароля онлайн. Критерии сложности, время взлома, брутфорс. Как создать надёжный пароль. Бесплатный инструмент проверки.
БезопасностьПолное руководство по настройке Brotli сжатия на веб-серверах: Nginx, Apache, сравнение с Gzip, уровни сжатия и проверка работы.
БезопасностьНастройка безопасных cookies: Secure, HttpOnly, SameSite. Защита от XSS, CSRF, перехвата. Примеры для разных языков и фреймворков.
Поделитесь с коллегами или изучите другие материалы блога
IP-геолокация — определение географического положения устройства по его IP-адресу. Технология используется в безопасности, аналитике, персонализации контента и борьбе с мошенничеством. В статье разберём принципы работы и практическое применение.
Проверить информацию по любому IP можно через IP Info на rechecker.ru.
IP-адреса распределяются региональными интернет-регистраторами (RIR): ARIN, RIPE NCC, APNIC и другими. Каждому провайдеру выделяются блоки адресов с привязкой к региону.
IP: 95.165.xxx.xxx
RIR: RIPE NCC (Европа)
Провайдер: Ростелеком
Регион: Москва
| Источник | Точность | Обновление | Применение |
|---|---|---|---|
| RIR/WHOIS | Страна, регион | Редко | Базовая геолокация |
| BGP-таблицы | ASN, провайдер | Часто | Маршрутизация |
| Геобазы (MaxMind, IP2Location) | Город, координаты | Еженедельно | Коммерческое использование |
| CDN/провайдеры | Локация по PoP | Реальное время | Доставка контента |
| Уровень | Точность | Пример |
|---|---|---|
| Страна | 95–99% | Россия |
| Регион/область | 85–95% | Московская область |
| Город | 70–90% | Москва |
| Координаты | 50–80% | Широта, долгота |
| Улица/здание | Ненадёжно | Не рекомендуется |
| Тип | Диапазон | Геолокация |
|---|---|---|
| Публичный | Глобальная маршрутизация | Да |
| Приватный (10.x, 192.168.x, 172.16–31.x) | Локальная сеть | Нет |
| localhost (127.0.0.1) | Локальный хост | Нет |
При использовании VPN или прокси геолокация указывает на выходной узел, а не на реальное местоположение пользователя.
Типичная структура ответа:
{
"ip": "95.165.123.45",
"country": "RU",
"country_name": "Russia",
"region": "MOW",
"region_name": "Moscow",
"city": "Moscow",
"latitude": 55.7558,
"longitude": 37.6173,
"timezone": "Europe/Moscow",
"isp": "Rostelecom",
"asn": "AS12389",
"asn_org": "Rostelecom"
}
IP Info на rechecker.ru возвращает страну, регион, город, провайдера, ASN и координаты для любого IP. Удобно для проверки собственного IP, IP посетителей и отладки геозависимой логики.
# Пример запроса к сервису геолокации
curl "https://api.example.com/ip/95.165.123.45"
import geoip2.database
reader = geoip2.database.Reader('/path/to/GeoLite2-City.mmdb')
response = reader.city('95.165.123.45')
print(response.country.iso_code, response.city.name)
| База | Размер | Точность | Лицензия |
|---|---|---|---|
| MaxMind GeoLite2 | ~70 MB | Город | Бесплатная, CC BY-SA |
| MaxMind GeoIP2 | ~90 MB | Выше | Платная |
| IP2Location | Различные | Высокая | Платная |
| DB-IP | ~50 MB | Средняя | Бесплатная Lite |
При использовании прокси реальный IP клиента может передаваться в заголовках:
X-Forwarded-For: client, proxy1, proxy2
X-Real-IP: client
Берётся первый IP из X-Forwarded-For (или X-Real-IP), если доверяете прокси. Иначе возможна подмена IP.
const maxmind = require('maxmind');
const lookup = await maxmind.open('/path/to/GeoLite2-City.mmdb');
const result = lookup.get('95.165.123.45');
console.log(result?.country?.iso_code, result?.city?.names?.ru);
<?php
require_once 'vendor/autoload.php';
$reader = new GeoIp2\Database\Reader('/path/to/GeoLite2-City.mmdb');
$record = $reader->city('95.165.123.45');
echo $record->country->isoCode . ' ' . $record->city->name;
IP Info — быстрый способ проверить геолокацию любого IP без установки баз и API-ключей.