База геолокации IP
Соответствие адресов местам, составленное поставщиком базы. Это оценка, которую разные поставщики делают по-разному, а сайты выбирают, кому верить.
Адрес не содержит местоположения. Существует набор коммерческих баз, сопоставляющих диапазоны со странами, регионами и городами на основе реестровых записей, публикаций провайдеров, замеров задержек и вывода. Каждый поставщик строит свою, и между собой они расходятся.
Точность по стране высокая, по городу нет. Поставщики сами публикуют городскую точность заметно ниже той, что подразумевает интерфейс, и цифра меняется от страны к стране. Это и есть техническая причина, по которой городской таргетинг в одних рынках стоит запрашивать, а в других он пустая трата.
Для сбора следствие прямое. Сайт, к которому вы пришли, смотрит адрес в той базе, которую лицензировал он, а не в той, где смотрели вы. Два сервиса могут честно назвать два разных города для одного выхода, и ни один из них не врёт.
Отсюда практическое правило: выход проверяйте справочником, но настоящим ответом считайте поведение цели. Если маркетплейс показывает цены соседнего региона, прав маркетплейс в том, что он будет делать, что бы ни говорил ваш чекер.
Как строится соответствие
Отправная точка это данные реестров: какой организации принадлежит диапазон и в какой стране он был выделен. На уровне страны это надёжно и про города не говорит ничего.
Провайдеры могут публиковать собственные geofeed с описанием того, как они используют диапазоны внутри. Где такие файлы есть, они лучший источник, где их нет, поставщики выводят город из задержек, маршрутов и наблюдаемого поведения пользователей.
Вывод и порождает расхождения. Два поставщика, измеряющие разное в разное время, законно приходят к разным городам для одного диапазона, и обновляются они каждый по своему графику.
Что проверять и чему верить
Проверьте выход, потом проверьте цель и запишите, что сказал каждый:
Два ответа про один адрес
# что думает справочник
curl -s -x login_c_DE_city_Munich:password@proxy.sotaproxy.com:10000 https://ipinfo.io/json | grep -iE "city|region"
# что думает цель, и это тот ответ, который важен
curl -s -x login_c_DE_city_Munich:password@proxy.sotaproxy.com:10000 https://target.example/ | grep -iE "delivery|region|shipping" | head -3- Если запрос города выполнить нечем, выход откатывается на уровень страны. Логируйте это: молчаливый откат превращает городской датасет в национальный.
- На каждой строке храните и запрошенный город, и наблюдаемый регион. Без обоих расхождение через неделю не диагностируется.
- Для большинства задач честное разрешение это страна. Город окупается там, где цены или результаты действительно различаются по регионам, и страницы стран говорят, где именно.
Частые заблуждения
Адрес не знает, где он
Местоположение приписывается снаружи. В самом пакете города нет.
Ваш справочник это не справочник цели
Сайты лицензируют свою базу. Совпадение вашей с их это случайность, а не правило.
Точность по городу это не точность по стране
Страна почти достоверна, город это вероятность, зависящая от рынка и поставщика.
Неверный город не всегда неверный адрес
Адрес может стоять ровно там, где вы просили, а база просто не догнала изменения в диапазоне.
Смотри на практике
Готов использовать база геолокации ip?
SotaProxy даёт доступ к ротирующим резидентским, мобильным, дата-центр и ISP прокси. Без минимальных платежей.
Начать