답변:
IPv6 / IPv4 기본 설정은 연결 시작 자, 즉 웹 브라우저에 의해 결정됩니다. 주소 선택 규칙은 RFC 6724에 정의되어 있습니다. 재정의 할 수는 있지만 사용자는 운영 체제를 재구성해야합니다.
다른 사람이 IPv4를 사용 하도록 할 수있는 유일한 방법 은 IPv6을 전혀 제공하지 않는 것입니다. 분명히 이것은 중기 적으로도 실용적인 해결책이 아닙니다 ...
따라서 원래 문제로 돌아가 보겠습니다. IPv6의 지리적 위치는 "IPv4보다 조금 더 중요합니다."
부분적으로 이것은 지리적 위치 데이터를 얻는 위치에 따라 크게 달라집니다. 예를 들어 Maxmind는 내 IPv6 주소를 "미국"으로 도시를 전혀 지정하지 않고 흥미로운 좌표 를 제공하는 반면 Google은 여전히 여전히 약 50 마일 떨어진 대도시 지역을 정확하게 식별합니다. Maxmind와 Google은 모두 수정 사항을보고 할 수 있으며 최소한 Maxmind의 경우 누구나 IP 주소에 대해이 작업을 수행 할 수 있습니다 .
이 상황이 오래 지속될 것이라고는 생각하지 않습니다. IPv6 사용이 계속 확장됨에 따라 이러한 지리적 위치 서비스 사용자는 IPv6 주소에 대해 더 높은 정확도를 요구할 것이며, 적어도 고객을 지불하기 위해 고객이 다른 곳으로 이동하지 않도록이를 최종적으로 제공해야합니다.
그 동안에는 응용 프로그램에 다른 방법으로 사용자를 찾을 수 있어야합니다. 로그인 한 경우 기존 계정에서 위치에 대한 힌트를 얻을 수 있습니다. 사용자에게 국가를 명시 적으로 선택하도록 요청할 수 있습니다. 등등...
웹 페이지에서 IPv4 전용 하위 도메인과 IPv6 전용 하위 도메인을 제공하면 페이지를 각각로드 할 수 있습니다. 그런 다음 이들을 클라이언트 측과 연관시키고 서버에 다시보고 할 수 있습니다. 우연히도 Maxmind는 이미 자체 웹 사이트에서이 작업을 수행하고 있습니다.
이러한 기본 설정은 SRV 레코드를 사용하여 표현할 수 있습니다. 불행히도 HTTP에는 지원되지 않습니다. 따라서 클라이언트 만 IPv4와 IPv6 중에서 선택하는 상황에 처하게됩니다.
많은 클라이언트가 SYN + SYN-ACK의 왕복 시간을 사용하여 둘 중 사용할 것을 결정합니다. 따라서 IPv6에서 SYN-ACK 패킷 전송 속도를 늦춤으로써 대부분의 클라이언트가 IPv4를 선호하게 할 수 있습니다. 그러나 일부러 사이트 속도를 늦추는 것은 끔찍한 방법입니다.
대신 나는 물러서서 문제를 살펴볼 것입니다. 더 나은 위치 정보 데이터를 원합니다. 방문자가 사이트에 액세스 할 때마다 즉시 해당 IP 주소 중 하나를 알게됩니다. 이것이 IPv4 주소인지 IPv6 주소인지는 브라우저가 서버와 통신하기 위해 선호하는 브라우저에 따라 다릅니다.
페이지 내에서 AJAX 요청을 사용하여 다른 IP 주소를 알 수 있습니다. IPv4를 사용하는 클라이언트의 경우 AJAX 요청을 IPv6 전용 도메인으로 보내고 IPv6을 사용하는 클라이언트의 경우 AJAX 요청을 IPv4 전용 도메인으로 보냅니다.
AJAX 요청이 서버에 도착하자마자 사용자의 IPv4 및 IPv6 주소를 모두 알게됩니다. 이 서신을 알면 둘 중 하나만 아는 것보다 지리적 위치를 더 잘 수행 할 수 있습니다.
AJAX 요청이 서버에 도착하지 않는 경우가 종종 있습니다. 이러한 사용자의 경우 하나의 IP 주소 만 기반으로 가장 잘 수행 할 수 있으므로 지리적 위치를 지정해야합니다. 그러나 AJAX 요청에 대한 응답이 클라이언트 측에서 사용되지 않는 한, 사용자는 AJAX 요청이 실패한 것을 눈치 채지 못할 것입니다. 따라서 AJAX 요청으로 인해 감지 된 속도 저하 또는 불규칙한 동작이 발생하지 않습니다.