Abra dois celulares diferentes, em duas operadoras móveis diferentes, na mesma cidade, e consulte os endereços IP públicos deles. Há uma chance real de que as duas consultas retornem um IP registrado em um data center a centenas de quilômetros de qualquer um dos aparelhos. Isso não é um bug nem do celular nem do serviço de geolocalização. É o NAT de nível de operadora, conhecido como CGNAT, e é prática padrão em praticamente todas as redes móveis.
O CGNAT existe porque as operadoras móveis ficaram sem endereços IPv4 públicos suficientes para dar a cada dispositivo conectado o seu próprio. Em vez disso, a operadora atribui a cada dispositivo um endereço privado e encaminha o tráfego por um pool compartilhado de IPs públicos em um gateway central, às vezes atendendo uma região inteira ou até um país inteiro por meio de poucos pontos de saída. Vistos de fora, cada um desses dispositivos parece compartilhar um IP com potencialmente milhares de outros assinantes naquele mesmo momento.
A consequência direta para a geolocalização é que um endereço IP móvel muitas vezes identifica a localização do gateway da operadora, e não a posição real do celular. Um aparelho em uma cidade pode parecer estar se conectando de onde quer que a operadora encaminhe o seu pool de NAT, o que pode ser o grande polo mais próximo em vez da localização real do usuário. Isso é diferente do caso da banda larga fixa, em que um IP tem mais chance de estar ligado a uma central regional específica perto do assinante.
Esta é uma limitação conhecida e universal da localização baseada em IP nas redes celulares, e não algo específico de um provedor de consulta. Ela vale igualmente para qualquer serviço de geolocalização que faça a consulta, porque a restrição está na forma como a operadora encaminha o tráfego, e não na forma como os dados de localização são compilados.
A conclusão prática é esperar resultados menos precisos, muitas vezes em nível de região ou de país, para endereços IP que pertencem a ASNs de operadoras móveis, e tratar resultados em nível de cidade vindos de faixas móveis como uma estimativa razoável, e não como uma localização confirmada. Se a sua aplicação realmente precisa saber onde um dispositivo móvel está, o GPS do próprio dispositivo sempre terá desempenho melhor do que a geolocalização por IP, porque mede a posição diretamente em vez de deduzi-la a partir do roteamento da rede. Use consultas baseadas em IP no tráfego móvel para aquilo em que elas são confiáveis: identificar a operadora, o país e, geralmente, a região, tratando qualquer coisa mais precisa como a melhor estimativa disponível, e não como um fato.
Um endereço no centro de uma cidade bem mapeada quase não diz nada sobre como o seu sistema lida com uma estrada rural, uma fronteira disputada ou uma consulta perto dos polos. Teste os casos difíceis de propósito.
Nem todo conjunto de dados com informações de localização de aparência pública pode ser usado legalmente dentro de um produto pago. Os termos de licenciamento, e não a disponibilidade técnica, costumam definir o limite real.
Quando uma consulta realmente não pode ser resolvida de forma confiável, não retornar nada é uma resposta melhor do que retornar um palpite disfarçado de fato. Veja o raciocínio por trás dessa escolha.