La preferencia IPv6 / IPv4 está determinada por el iniciador de una conexión, es decir, el navegador web. Las reglas de selección de dirección se definen en RFC 6724 . Si bien estos pueden ser anulados, solo es por el usuario que reconfigura su sistema operativo.
La única forma en que puede obligar a alguien a usar IPv4 es no ofrecer IPv6 en absoluto. Obviamente, esta no es una solución práctica, incluso a medio plazo ...
Entonces, volvamos al problema original: la geolocalización para IPv6 es "un poco más asquerosa que con IPv4".
En parte, esto depende mucho de dónde obtenga sus datos de geolocalización. Maxmind, por ejemplo, solo da mi dirección IPv6 como "Estados Unidos" sin ninguna ciudad y un conjunto interesante de coordenadas , mientras que Google al menos identifica correctamente el área metropolitana a la que todavía están a 50 millas de distancia. Tanto Maxmind como Google permiten correcciones de informes, y al menos para Maxmind cualquiera puede hacer esto para cualquier dirección IP.
No esperaría que esta situación dure mucho tiempo. A medida que el uso de IPv6 continúa expandiéndose, los usuarios de dichos servicios de geolocalización exigirán una mayor precisión para las direcciones IPv6, y eventualmente tendrán que entregarla, al menos para los clientes que pagan, para que esos clientes no vayan a otro lado.
Mientras tanto, debe asegurarse de que su aplicación tenga otras formas de localizar usuarios. Si iniciaron sesión, puede leer su cuenta existente para obtener pistas sobre su ubicación. Puede pedirle al usuario que seleccione explícitamente un país. Y así...
Otra cosa que puede hacer es proporcionar un subdominio solo IPv4 y un subdominio solo IPv6 de su sitio web, cada una de las cuales sus páginas intentan cargar. Luego puede correlacionarlos del lado del cliente e informar al servidor. No es coincidencia que Maxmind ya esté haciendo esto en su propio sitio web.