Я написал одну из этих служб «какой у вас IP-адрес», на https://myip.addr.space/, чтобы я мог точно сказать вам, как это делается.
Во-первых, любое отдельное соединение будет толькоперейти на IPv6 или IPv4, но не оба.Невозможно получить оба адреса одним запросом.
Итак, при первом запросе мы показываем адрес IPv6 или IPv4, на который он пришел.
Далее мы выполняем несколько запросов AJAX сjQuery, к поддоменам, которые имеют только IPv4-адрес или только IPv6-адрес, так что они работают только на IPv4 или IPv6 соответственно и, таким образом, гарантированно возвращают IPv4 или IPv6-адрес.
Это делается вDNS выглядит так:
$ host myip.addr.space
myip.addr.space is an alias for www.addr.space.
www.addr.space has address 144.217.146.101
www.addr.space has IPv6 address 2607:5300:203:118:1:0:3:8b50
$ host ipv4.myip.addr.space
ipv4.myip.addr.space has address 144.217.146.101
$ host ipv6.myip.addr.space
ipv6.myip.addr.space has IPv6 address 2607:5300:203:118:1:0:3:8b50
JQuery очень прост:
<script type="text/javascript">
<!--
$.get("https://ipv4.myip.addr.space/ajaxlookup")
.done(function(data) {
$("div#ipv4-address").html(data);
})
.fail(function(data) {
$("div#ipv4-address").html("<p>Couldn't determine an IPv4 address. You might not have IPv4 connectivity.</p>");
});
$.get("https://ipv6.myip.addr.space/ajaxlookup")
.done(function(data) {
$("div#ipv6-address").html(data);
})
.fail(function(data) {
$("div#ipv6-address").html("<p>Couldn't determine an IPv6 address. You might not have IPv6 connectivity.</p>");
});
</script>
В результате получается до трех выходных IP-адресов:
Чего не требуется, так это связать ваш IPv6-адрес с вашим IPv4-адресом.Вам нужно будет использовать что-то вроде куки, если вы хотите отслеживать пользователя при изменении его IP-адреса.Здесь нет ничего концептуально отличного от того, как вы будете обращаться с пользователем, чей IPv4-адрес изменился на другой IPv4-адрес, за исключением того, что, возможно, вам придется отказаться от практики привязки файлов cookie к IP-адресам, если вы это делали.