Когда пользователь подключается через VPN, IP-геолокация не ошибается, она просто отвечает на другой вопрос, чем тот, который вы хотели задать. Определение правильно указывает сеть, через которую трафик сейчас выходит в интернет, то есть сервер VPN-провайдера, а не собственное подключение пользователя. Если этот выходной сервер находится в другой стране, результат уверенно и правильно поместит пользователя туда, потому что с точки зрения сети именно оттуда трафик и исходит.
Прокси в принципе ведут себя так же, хотя детали различаются. Прямой прокси пересылает запрос с одного IP на другой, и получатель видит только адрес прокси. Прозрачный прокси может передавать исходный адрес клиента в заголовке, но правильно настроенный прокси полностью его скрывает. В любом случае определение геолокации не ошибается насчёт IP, который ему передали. Оно просто описывает сеть, которой принадлежит этот IP, то есть инфраструктуру оператора прокси или VPN, а не человека за ней.
Это важно для двух разных сценариев, которые часто путают. Если ваша цель соблюдение требований или локализация контента, точные сведения о выходной сети часто именно то, что нужно, поскольку это та юрисдикция, через которую трафик юридически проходит. Если ваша цель обнаружение мошенничества, интересный сигнал не само местоположение, а то, что подключение идёт из инфраструктуры, известной как VPN или хостинг-провайдер, а не из домашней или мобильной сети, и это отдельный показатель, не связанный с самой геолокацией.
Определить, что IP принадлежит инфраструктуре VPN или прокси, это другая задача, чем поместить этот IP на карту, и она зависит от отслеживания того, какими диапазонами адресов управляют хостинг- и VPN-провайдеры, а этот список постоянно меняется по мере запуска новых сервисов и перераспределения старых. Этот сигнал доступен как необязательный в дополнение к географическому результату, поскольку включение его в каждый ответ по умолчанию замедлило бы запросы, которым он не нужен.
Ничто из этого не делает IP-геолокацию менее полезной. Это делает её описанием сетевой топологии, которым она всегда и была. Воспринимайте результат с пометкой VPN как «это подключение сейчас выходит через эту сеть», а не как «пользователь точно живёт не здесь», и данные будут делать ровно то, что обещают. Чтобы получить сетевые подробности вместе с полями местоположения, передайте mg_extras=1 или заголовок X-MG-Extras при определении IPv4 или определении IPv6.
Адрес в хорошо картографированном центре города почти ничего не говорит о том, как ваша система справится с сельским маршрутом, спорной границей или запросом вблизи полюсов. Тестируйте сложные случаи намеренно.
Не каждый набор данных с общедоступными на вид сведениями о местоположении можно законно использовать в платном продукте. Реальную границу часто задают условия лицензии, а не техническая доступность.