A preferência IPv6 / IPv4 é determinada pelo iniciador de uma conexão, ou seja, o navegador da web. As regras de seleção de endereço são definidas em RFC 6724 . Embora possam ser substituídos, é apenas pelo usuário que reconfigura o sistema operacional.
A única maneira que você pode forçar alguém a usar o IPv4 é não oferecer IPv6. Obviamente, esta não é uma solução prática nem a médio prazo ...
Então, vamos voltar ao problema original: a geolocalização para o IPv6 é "um pouco mais spottier do que com o IPv4".
Em parte, isso depende muito de onde você obtém seus dados de geolocalização. O Maxmind, por exemplo, apenas fornece meu endereço IPv6 como "Estados Unidos" sem nenhuma cidade e um interessante conjunto de coordenadas , enquanto Google, pelo menos, identifica corretamente a área metropolitana que ainda estão a cerca de 50 milhas de distância. Tanto a Maxmind quanto o Google permitem o relato de correções, e pelo menos para o Maxmind qualquer um pode fazer isso para qualquer endereço IP.
Eu não esperaria que esta situação durasse muito tempo. À medida que o uso de IPv6 continua a se expandir, os usuários desses serviços de geolocalização demandarão maior precisão nos endereços IPv6, e eles terão que entregá-los eventualmente, pelo menos para clientes pagantes, para que esses clientes não venham para outro lugar.
Nesse meio tempo, você deve ter certeza de que seu aplicativo tem outras maneiras de localizar usuários. Se eles tivessem feito login, você poderia ler a conta existente em busca de pistas sobre sua localização. Você pode pedir ao usuário para selecionar explicitamente um país. E assim por diante ...
Uma outra coisa que você pode fazer é fornecer um subdomínio somente IPv4 e um subdomínio somente IPv6 do seu site, cada um dos quais suas páginas tentam carregar. Você pode correlacioná-los ao lado do cliente e reportar de volta ao servidor. Não coincidentemente, a Maxmind já está fazendo isso em seu próprio site.