21

我正在开发一个 IP 地理定位库,它使用 IPv4 地址的前三个八位字节来确定用户的国家、城市、纬度、经度等。就像一个魅力。

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

有什么方法可以转换 IPv6 地址以获得相当于 IPv4 地址的前三个八位字节的地址,还是它们使用完全不同的编号方案,需要完全不同的 ipgeo 映射?

4

8 回答 8

17

典型的IPv6 分配是将 /32(四个八位字节)分配给 Internet 提供商(可以是跨国公司),然后将/48(六个八位字节) 分配给终端站点(通常是客户组织)。您可以在IANA 授权块列表中找到一个起点。

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

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

此外,存在许多用于 IPv4 的地理定位数据库,据我所知,没有用于 IPv6 的数据库。您必须自己做所有事情。

总结一下:工作量比你明显相信的要多。

于 2009-07-23T11:22:42.860 回答
2

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

根据 MaxMind 的客户服务部门(强调我的):“目前不支持 IPv6。在未来的某个时间,我们确实计划实施它,但我们目前没有具体日期。”

于 2010-08-02T21:52:48.563 回答
2

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

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

0x53 = 83
0x89 = 137
0x11 = 17
0x64 = 100

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

于 2011-06-26T14:58:50.287 回答
1

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

于 2010-06-03T07:57:12.977 回答
1

如果你在 wiki 上阅读了一些 ipv6、地址和转换机制,你会发现一些 IPv6 地址模式可能会推断出 ipv4(siit、ipv4-mapped ipv6、nat64、上面写的 2002:* 等等)。其中一个开始: http ://en.wikipedia.org/wiki/IPv6_transition_mechanisms

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

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

另一个问题是手机:如果我没记错的话,ipv6 旨在促进漫游。您可以更换手机信号塔并保留您的 IP。甚至可能在改变城市、地区或国家时。我有点怀疑,因为强大的地址亲和力是 MAC 地址的目的。IP 地址的存在正是为了路由目的,但我认为公平地说,它们可能会变得足够不变,从而削弱地理位置的准确性,显然。

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

于 2012-12-15T14:35:48.370 回答
1

有一个称为“推荐 Whois ”的协议,它允许提供商发布 IP 地理位置信息,其他人可以检索它。

比如我现在的IP 2001:470:b4ea:babe:d57:15c8:97b:60c9 属于美国的Hurricane Electric。我使用的 IPv4-IPv6 隧道终止的实际服务器在瑞士,但我在奥地利。HE发布了所有这些,所以如果你在这样的支持RWhois的工具中输入IP 你会在你看到的底部附近找到HE的联系方式

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

联系方式:街道-地址:私人住宅

联系方式:国家代码:AT

这是我的位置。

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

大多数 IP 地理定位提供商(支持 IPv6,有些仍然不支持)将此 IP 放到瑞士,有些甚至在美国。

于 2015-12-01T21:15:45.013 回答
-1

由于似乎还没有一种简单的方法可以做到这一点,也许我们有机会做一些在 IPv4 的情况下没有做过的事情 (*)

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


(*) 或者如果它完成了,它没有工作!

于 2009-07-23T11:28:08.623 回答
-1

地理位置不好,嗯?互联网与位置无关,我从未见过地理定位用于非平凡非邪恶的事情。也就是说,我见过的唯一好的应用程序(语言选择)是微不足道的(可能很容易成为下拉菜单)。存在许多邪恶的应用程序(此视频在您的国家/地区不可用,针对我的实际位置进行广告和跟踪)我们不能阻止此类应用程序的存在,但我们应该推动使其非法或至少在社会上不可接受的使用。

于 2011-02-08T04:59:06.387 回答