Возьмите два телефона двух разных мобильных операторов в одном городе и определите их публичные IP-адреса. Вполне реальна ситуация, когда оба запроса вернут IP, зарегистрированный на дата-центр в сотнях километров от каждого из телефонов. Это не ошибка ни телефона, ни сервиса геолокации. Это NAT операторского уровня, который обычно называют CGNAT, и это стандартная практика почти в каждой мобильной сети.
CGNAT существует потому, что мобильным операторам не хватило публичных IPv4-адресов, чтобы выдать каждому подключённому устройству собственный. Вместо этого оператор назначает каждому устройству частный адрес и направляет его трафик через общий пул публичных IP на центральном шлюзе, иногда обслуживая целый регион или даже всю страну через несколько точек выхода. Снаружи каждое из этих устройств выглядит так, будто в этот же момент делит IP, возможно, с тысячами других абонентов.
Прямое следствие для геолокации в том, что мобильный IP-адрес часто указывает на местоположение шлюза оператора, а не на фактическое положение телефона. Телефон в одном городе может выглядеть так, будто подключается оттуда, куда оператор направляет свой пул NAT, а это может быть ближайший крупный узел, а не реальное местоположение пользователя. Этим мобильная связь отличается от фиксированной, где IP с большей вероятностью привязан к конкретному региональному узлу рядом с абонентом.
Это известное и универсальное ограничение определения местоположения по IP в сотовых сетях, а не особенность какого-то одного провайдера. Оно действует одинаково, какой бы сервис геолокации ни выполнял запрос, потому что ограничение заключается в том, как оператор маршрутизирует трафик, а не в том, как собираются данные о местоположении.
Практический вывод: для IP-адресов, относящихся к ASN мобильных операторов, ожидайте более грубых результатов, часто на уровне региона или страны, и рассматривайте результаты на уровне города из мобильных диапазонов как разумную оценку, а не подтверждённое местоположение. Если вашему приложению действительно нужно знать, где находится мобильное устройство, GPS самого устройства всегда превзойдёт IP-геолокацию, потому что измеряет положение напрямую, а не выводит его из сетевой маршрутизации. Используйте определение по IP для мобильного трафика в том, в чём оно надёжно: для определения оператора, страны и обычно региона, а всё более точное рассматривайте как лучшую доступную оценку, а не как факт.
Адрес в хорошо картографированном центре города почти ничего не говорит о том, как ваша система справится с сельским маршрутом, спорной границей или запросом вблизи полюсов. Тестируйте сложные случаи намеренно.
Не каждый набор данных с общедоступными на вид сведениями о местоположении можно законно использовать в платном продукте. Реальную границу часто задают условия лицензии, а не техническая доступность.