Как сайты определяют местоположение пользователя

ProxyCompass Knowledge Base

Как сайты определяют местоположение пользователя

Сайт может определить примерное местоположение по IP-адресу, запросить координаты устройства или использовать сведения, сохранённые при прошлых посещениях. Он также может показывать страну, которую пользователь выбрал самостоятельно. Эти данные описывают разные вещи: подключение, устройство, предпочтения пользователя и его учётную запись.

При выборе геолокации прокси вы выбираете нужную страну для IP-адреса, который будут видеть сайты. Браузер при этом продолжает передавать и другие сведения. Чтобы разобраться в результате на конкретном сайте, нужно понимать, что означают эти данные и как сайт их получает.

Покупатель в Индии выбирает кроссовки в немецком магазине через немецкий прокси. Магазин видит немецкий IP вместе с cookies, часовым поясом и геолокацией, разрешённой пользователем.

Почему немецкий IP может открыть версию магазина для Индии?

Представим, что покупатель находится в Индии и открывает интернет-магазин через прокси с заявленной геолокацией в Германии. В нашем примере магазин тоже относит IP-адрес к Германии. Однако в меню выбора страны по-прежнему указана Индия, а каталог содержит товары, доступные покупателям в Индии.

При прошлом посещении покупатель самостоятельно выбрал Индию в этом меню. Магазин сохранил выбор и применил его снова. Теперь магазину известно следующее: текущий запрос пришёл с IP-адреса, который он относит к Германии, а ранее покупатель выбрал товары для Индии. Этот магазин намеренно сохраняет выбранный регион.

Страна IP-адреса и регион магазина отвечают на разные вопросы. Первая относится к адресу, с которого пришёл запрос, второй определяет условия просмотра и покупки. Так же работают выбранный город на сайте погоды или направление в поиске отелей. Сайт может показывать информацию о месте, не считая, что посетитель физически находится именно там.

Какие сведения получает сайт?

Когда браузер запрашивает страницу, принимающий запрос сервер видит IP-адрес подключения. Если запрос отправлен через прокси, он видит адрес, с которого подключается прокси. Данные геолокации позволяют сопоставить этот адрес со страной или территорией. Такую проверку может выполнять сам сайт или сервис, который принимает запросы от его имени.

В запросе также могут быть языковые предпочтения и cookies, ранее сохранённые для этого сайта. После загрузки страницы её JavaScript может прочитать дополнительные настройки браузера и запросить геолокацию устройства через систему разрешений. Вход в учётную запись даёт сайту ещё один источник сведений: сохранённые данные аккаунта.

СведенияОткуда они берутсяДля чего сайт может их использовать
Страна IP-адресаПодключение и используемые сайтом данные геолокации IP.Выбрать начальную региональную страницу или определить примерную территорию.
Координаты устройстваОценка местоположения, которую сайт запрашивает у браузера с разрешения пользователя.Найти объекты поблизости или показать посетителя на карте.
Сохранённая страна или городДанные сайта в браузере либо настройки учётной записи.Восстановить регион, выбранный при прошлом посещении.
Язык и часовой поясНастройки браузера, доступные через запросы или скрипты страницы.Выбрать поддерживаемый язык и показать местное время.
Адрес доставки или место поискаСведения, которые указал сам пользователь.Проверить возможность доставки или выполнить поиск в нужном месте.

Сайт использует сведения, необходимые для его функций. Простой странице может быть достаточно IP-адреса. У магазина с аккаунтами, региональными каталогами и доставкой есть основания обращаться к нескольким источникам. Каждый сайт самостоятельно определяет, какие из этих данных ему нужны.

Как сайт запоминает выбранную страну?

Cookies — небольшие фрагменты данных, которые браузер сохраняет и отправляет с последующими запросами к соответствующему сайту. Cookie может содержать выбранную страну. Другой вариант — идентификатор, по которому сервер находит сохранённую сессию и её настройки. Предпочтения также могут храниться в других хранилищах браузера, например в localStorage, откуда их читает скрипт сайта.

Смена прокси меняет подключение для последующих запросов. Сохранённые значения при этом остаются. В примере с магазином запрос с немецкого IP может содержать прежний cookie сессии, по которому магазин восстановит выбор Индии.

Настройки аккаунта могут сохраняться при смене браузера и устройства. Домашний адрес, адрес доставки или предпочтительный регион могут находиться на серверах сайта. После входа в учётную запись эти сведения снова доступны. Удаление локальных данных сайта не удаляет записи из аккаунта.

Регион может задавать и сама ссылка. У магазина могут быть отдельные домены или пути в адресе страницы для разных стран. Если вы открываете ссылку на индийскую версию магазина, она может загрузиться сразу. В таком случае адрес страницы уже сообщает магазину, какую версию вы запросили.

Имеют значение и предыдущие действия пользователя. Например, Google описывает использование IP-адреса, геолокации устройства, сохранённых домашнего и рабочего адресов, а также прошлых действий для выбора подходящего местоположения в поиске. Это описание работы сервиса Google. Оно не означает, что произвольный сайт умеет читать всю историю вашего браузера.

Как браузер передаёт геолокацию устройства?

Geolocation API — функция браузера, с помощью которой страница может запросить оценку географического положения устройства. На обычных публичных сайтах она доступна в защищённом контексте, как правило через HTTPS, и требует разрешения на геолокацию. В ответ передаются широта, долгота, оценка точности и время получения координат. Если страница допускает сохранённый результат, разрешённый запрос может вернуть прежние координаты. Поэтому открытие карты не обязательно означает новое измерение.

Способ получения координат определяют браузер и службы геолокации устройства. Они могут использовать GPS, ближайшие сети Wi-Fi, сведения мобильной сети и информацию об IP-адресе. Поэтому координаты может передать и ноутбук без GPS. API не требует одного конкретного источника и не сообщает странице, какой из них использовался. Возвращённые браузером координаты нельзя автоматически считать показаниями GPS или точным физическим местоположением.

Допустим, покупатель в Индии разрешил магазину получить геолокацию устройства, и браузер вернул координаты в Индии. Страница может отправить эти координаты магазину через немецкий прокси. Тогда запрос сообщает два разных факта: он пришёл с немецкого IP-адреса, а внутри него переданы координаты в Индии. Прокси доставляет эту информацию, но не превращает переданные координаты в координаты Германии.

Новое окно с запросом разрешения появляется не при каждом посещении. У браузера может ещё действовать разрешение, выданное раньше. Его можно проверить в настройках доступа к геолокации для этого сайта. Доступ также может зависеть от разрешений, выданных браузеру в операционной системе.

Отказ в разрешении запрещает сайту получать новые координаты через этот API, пока запрет действует. Определение страны по IP и уже сохранённые сайтом сведения остаются отдельными источниками. Поэтому сайт может показывать местоположение, даже если вы не разрешали ему запрашивать координаты устройства.

О чём говорят язык и часовой пояс?

Браузер может передавать предпочтительные языки в заголовке запроса Accept-Language. Языковые настройки также доступны скриптам страницы. Эти сведения помогают сайту выбрать язык, который понимает посетитель. Для их получения не требуется разрешение на геолокацию устройства.

Браузер с английским языком может сохранять его и во время поездки в другую страну, и при работе через немецкий прокси. Если немецкая версия магазина поддерживает английский, она может показывать английский текст и при этом относить подключение к Германии. Даже значение en-US обозначает вариант языка, а не подтверждённое местоположение в США.

Через JavaScript можно узнать и часовой пояс, который сообщает браузер, например с помощью Intl.DateTimeFormat().resolvedOptions().timeZone. Сайт может использовать его, чтобы показать время встречи в местном времени посетителя. Обычно значение отражает настройки среды, в которой работает браузер: часовой пояс может определяться автоматически или задаваться вручную.

Название часового пояса и смещение относительно UTC — разные значения. Смещение показывает разницу с UTC в определённый момент, и оно может совпадать у нескольких стран. Ни одно из этих значений само по себе не устанавливает физическое местоположение устройства. Сайт может сопоставлять язык и часовой пояс с другими сведениями, но их отличие от страны прокси ещё не означает, что сайт получил другой IP-адрес.

Может ли сайт узнать ещё один IP-адрес?

Настройка прокси действует на трафик, который браузер отправляет через этот прокси. Она не подтверждает, что все подключения браузера или устройства идут тем же путём. WebRTC — браузерная технология для передачи аудио, видео и данных в реальном времени — может определять доступные адреса при подготовке соединений. Если правила браузера и сетевые настройки допускают прямые проверки, они могут раскрыть другой публичный IP, например адрес интернет-подключения пользователя.

Результат зависит от правил конфиденциальности браузера и сетевых настроек. WebRTC не является универсальным способом, которым любой сайт всегда узнаёт публичный IP пользователя. Частный адрес локальной сети, например 192.168.1.10, означает другое: один и тот же адрес может использоваться во множестве независимых локальных сетей и сам по себе не указывает на страну.

DNS преобразует доменные имена в сетевые адреса. Специальная проверка DNS может определить сервер, который обрабатывает её запросы. Страна этого сервера относится к нему самому: он может находиться далеко и от пользователя, и от прокси. Некоторые DNS-серверы дополнительно передают часть IP-адреса клиента, отправившего DNS-запрос, через необязательную функцию EDNS Client Subnet. Обнаружение DNS-сервера в другой стране и раскрытие сведений о сети клиента — разные результаты.

Эти механизмы касаются сетевых сведений, доступных помимо обычного запроса страницы. Их имеет смысл исследовать, когда проверка показывает неожиданный публичный адрес или другие сетевые данные. Одного лишь неправильного языка страницы недостаточно, чтобы установить наличие такого подключения.

Каким сведениям сайт отдаёт приоритет?

Ответ зависит от того, какую задачу решает сайт. Функция «рядом со мной» на карте может использовать координаты устройства, полученные с разрешения пользователя. Магазин может сохранять страну, выбранную постоянным покупателем. Для расчёта доставки нужен адрес получателя. Все эти функции могут работать в рамках одного посещения и опираться на разные данные.

Нет универсального правила, по которому GPS всегда важнее IP, а страна аккаунта всегда важнее обоих источников. Сайт сам определяет, какие сведения доступны и нужны каждой функции. Он может использовать один источник, обращаться к другому при отсутствии данных или сопоставлять несколько.

Особенно хорошо это видно при оформлении заказа. Покупатель может просматривать немецкий каталог, а затем указать адрес доставки в Индии. Магазин может пересчитать доставку, изменить доступные товары или применить условия для указанной страны. Например, Shopify описывает адрес доставки как основание для окончательного выбора региональных условий при оформлении заказа. Это правило торговой системы, а не новое определение страны IP-адреса прокси.

Разрешение доступа — ещё одно решение. Сервис может правильно определить страну и всё же отклонить действие из-за правил, связанных с аккаунтом, сетью или доступностью услуги. Общее сообщение об отказе не сообщает, какие сведения стали причиной. Здесь важно конкретное объяснение сервиса, а не сам факт появления отказа.

Как понять, что повлияло на результат?

Сначала определите, какую именно функцию вы проверяете: страну подключения, региональный каталог, поиск поблизости, язык или возможность доставки. Они могут зависеть от разных сведений. Для полезного сравнения сохраняйте прежний IP прокси и адрес открываемой страницы, меняя по одному условию. Записывайте адрес каждой проверки, а не полагайтесь только на неизменные настройки прокси: при ротации IP может смениться одновременно с параметром, влияние которого вы хотели проверить.

  1. Посмотрите настройки самого сайта. Проверьте меню выбора страны, область поиска, адрес доставки и региональную версию в URL. Уже выбранное значение может объяснить результат.
  2. Сравните повторное посещение с новой сессией без входа в аккаунт. Отдельный тестовый профиль без сохранённых данных сайта помогает проверить их влияние. Сначала убедитесь, что этот профиль использует тот же IP прокси. Новая приватная сессия использует отдельные от обычного режима данные сайтов, но не меняет автоматически подключение и все настройки браузера.
  3. Проверьте, что меняется после входа в аккаунт. Если вместе с аккаунтом возвращается прежний регион, изучите сохранённые настройки страны и адресов. Такое поведение указывает на возможное влияние аккаунта, хотя и не раскрывает весь алгоритм сайта.
  4. Проверьте доступ к геолокации, если функции нужно текущее местоположение. Посмотрите разрешение для сайта и его пояснения об источнике координат, если они есть. Поиск объектов поблизости и сохранённая страна доставки требуют разных проверок.

В примере с магазином выбор Германии в меню страны позволяет изменить сохранённый регион каталога. Если задача состоит в доставке товара в Индию, индийский адрес по-прежнему важен. Если же сайт прямо относит IP прокси к другой стране, вопрос касается его данных геолокации для этого адреса. Понимание того, какой результат вам нужен, позволяет выбрать конкретное следующее действие.

Вернуться в базу знаний