它可以同时获得我的公共IPv4和IPv6地址(whatsmyipaddresss.com可以做到这一点),这是怎样做到的?

问题描述 投票:0回答:1

当访问我的WWW网站之一,显示$ _ SERVER [“REMOTE_ADDR”],有时它显示了一个IPv4地址,IPv6的有时。很公平。据我所知,连接将是一个或另一个,而不是两个。但是 - 我想这两个地址。像whatsmyipaddress.com网站能够同时显示。有谁知道他们是如何实现这一点?非常感谢。

ipv6 ipv4
1个回答
0
投票

我写的那些“什么是你的IP地址”的服务,在https://myip.addr.space/所以我可以告诉你到底怎么做的一个。

首先,任何单一的连接只打算去了IPv6或IPv4,但不能同时使用。这是不可能通过单个请求来获取两个地址。

所以,第一个请求,我们展示了IPv6或IPv4地址它来对。

接下来,我们要做的jQuery一些AJAX查询,到专门只有一个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地址输出:

myip.addr.space

什么这不就是你的IPv6地址与IPv4地址相关联。你需要,如果你想跟踪用户作为其IP地址更改为使用类似的cookie。没有什么概念不同,这里由你将如何处理其IPv4地址更改为一个不同的IPv4地址的用户,也许除了你扔出去绑饼干IP地址,如果你已经这样做的做法。

© www.soinside.com 2019 - 2024. All rights reserved.