Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Geolocation 使用IPv6进行地理定位?_Geolocation_Ipv6_Ipv4 - Fatal编程技术网

Geolocation 使用IPv6进行地理定位?

Geolocation 使用IPv6进行地理定位?,geolocation,ipv6,ipv4,Geolocation,Ipv6,Ipv4,我正在开发一个IP地理定位库,它使用IPv4地址的前三个八位字节来确定用户的国家、城市、纬度、经度等。它的功能非常强大 但它不处理IPv6地址,我希望它这样做 有没有办法将IPv6地址转换为IPv4地址的前三个八位字节,或者它们采用完全不同的编号方案,需要完全不同的ipgeo映射?将a/32(四个八位字节)转换为Internet 供应商(可以是跨国公司),然后 到最终站点(通常是客户组织)。你可以得到一份工作 在这个过程中的起点 这只供 在RIR数据库中找到的注册。任务结束 通常不会记录用户,因

我正在开发一个IP地理定位库,它使用IPv4地址的前三个八位字节来确定用户的国家、城市、纬度、经度等。它的功能非常强大

但它不处理IPv6地址,我希望它这样做

有没有办法将IPv6地址转换为IPv4地址的前三个八位字节,或者它们采用完全不同的编号方案,需要完全不同的ipgeo映射?

将a/32(四个八位字节)转换为Internet 供应商(可以是跨国公司),然后 到最终站点(通常是客户组织)。你可以得到一份工作 在这个过程中的起点

这只供 在RIR数据库中找到的注册。任务结束 通常不会记录用户,因此,我的当前地址,
2a01:e35:8bd9:8bb0:92b:8628:5ca5:5f2b
只会告诉您我的 供应商总部位于巴黎(因为它是一家国家公司, 客户可以在法国的任何地方)

另一个例外是PI(独立于提供程序)分配,它 通常是/48

此外,还有许多IPv4和(我的)地理位置数据库 知识,IPv6没有。你必须自己做每件事


总而言之:工作比你想象的要多。

因为现在似乎还没有一种简单的方法可以做到这一点,也许我们有机会做一些IPv4(*)中没有做的事情

我们可以停下来问问自己这是不是个好主意



(*)或者如果完成了,它就不起作用了

maxmind.com的地理定位服务和库可以处理IPv6。也许他们的东西是你的选择。(我与他们没有任何关系。)

友好地更正诺亚的评论(6月3日7:57)--

根据MaxMind的客户服务部(我的重点):“IPv6目前不受支持。在未来的某个时候,我们确实计划实施它,但目前还没有日期。”

地理位置不好,嗯? 互联网是位置不可知论的,我从未见过地理位置被用于非琐碎的非邪恶的事情。也就是说,我所见过的唯一好的应用程序(语言选择)都是微不足道的(也可以是一个下拉列表)。存在许多邪恶的应用程序(此视频在贵国不可用,针对我的实际位置进行广告和跟踪)
我们不能阻止这样的东西存在,但我们应该努力使其非法或至少在社会上不可接受。

与IPv4相比,IPv6使用完全不同的寻址方案。除了一个例外,您无法将IPv6地址映射到IPv4地址。如果看到以2002:开头的IPv6地址,则该地址是6to4地址。您可能不会看到有太多的应用程序在使用中,而且它们正在被弃用,但是这些程序可以映射到IPv4

公共IPv4地址的每个用户都可以使用IPv6空间的/48(65536个子网)。这些地址总是以2002开头:接下来的两个十六进制数是IPv4地址。因此,2002:5389:1164:对应于我自己的Web服务器的IPv4地址(83.137.17.100):


但所有“正常”IPv6地址都与任何IPv4地址完全无关。至少以标准的方式。ISP在向其客户推出IPv6时,可以定义IPv4和IPv6地址之间的关系。但是你不知道这种关系,所以它对你来说毫无用处……

如果你在wiki上阅读了大量ipv6、地址和转换机制,你会发现一些ipv6地址模式可以推断出ipv4(siit、ipv4映射ipv6、nat64、上面写的2002:*等)。其中一个开始:

我不会指望这些方案会流行到足以进行常规的地理报告、欺诈保护或事件检测,但我肯定会优先考虑对此类推断的ipv4地址进行ipv4地理查找,而不是ipv6地理查找(假设ipv4 db更完整)

我对ipv6地理信息的担忧是子网数量之多令人难以置信。数据库将变得更大(更多ip范围),这是预期的,但对于相同数量的终端地理信息,数据库将更稀疏,更深的树也更难迭代(对于使用二进制或基数树的实现),这意味着一些性能成本。使用ip范围的sql表的地理数据库可能也会受到影响,因为据我所知,我们没有128位的bigint来使用算术

另一个问题是手机:如果我没有弄错的话,ipv6是为了方便漫游而设计的。你可以更换手机发射塔并保留你的IP。甚至在改变城市、地区或国家的时候。我有点怀疑,因为一个强大的地址亲和力是一个MAC地址的目的。Ip地址的存在正是为了路由的目的,但我认为公平地说,它们可能变得不变性,足以削弱地理位置的准确性


我觉得用户代理/浏览器在应用层(例如某些地理位置标题)的协作很可能是未来的趋势,即使这可能会被恶作剧的人欺骗。

有一个协议,允许提供商发布IP地理位置信息,其他人检索它

例如,我当前的IP 2001:470:b4ea:babe:d57:15c8:97b:60c9属于美国的飓风电力公司。我使用的IPv4-IPv6隧道终止的实际服务器在瑞士,但我在奥地利。 他发布了所有这些,所以如果你在一个支持RWhois的工具中输入IP,你会在底部附近找到HE和somwhere的联系数据

联系人:姓名:私人客户-飓风电气

联系人:街道地址:私人住宅

联系人:国家代码:地址:

这是我的位置

没有多少提供商会发布它,也没有多少地理定位工具支持它,但至少它是存在的

大多数IP地理定位提供商(在支持IPv6的提供商中,有些仍然不支持)
0x53 = 83
0x89 = 137
0x11 = 17
0x64 = 100