【问题标题】:Geolocation with IPv6?使用 IPv6 进行地理定位?
【发布时间】:2010-11-12 20:34:10
【问题描述】:

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

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

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

【问题讨论】:

  • 您能告诉我 IPv6 规范的哪一部分让您相信 IPv6 地址和地理位置之间存在任何对应关系吗?
  • 您可能希望看到以下内容,至少对于移动 IPv6:rfc-editor.org/rfc/rfc4882.txt
  • Hmmmmmmmm... 好吧,IPv4 规范没有任何内在的东西暗示任何有关地理位置的信息。仅基于 IP 地址块倾向于分配给区域 ISP 的事实,可以使用 IPv4 完成地理定位是一个方便的巧合(或不方便,如果您不想让人们知道您在哪个城市)。实际上,我并没有询问 IPv6 中固有的地理定位功能,只是为了从 IPv6 地址到等效的 IPv4 地址的前三个八位字节的一些转换,如果存在这样的映射的话。

标签: geolocation ipv6 ipv4


【解决方案1】:

typical IPv6 allocation 是 Internet 的 /32(四个八位字节) 供应商(可以是跨国公司),然后/48 (six octets) 到终端站点(通常是客户组织)。你可以得到一个 起点在IANA list of delegated blocks

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

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

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

总结:工作量比你想象的要多。

【讨论】:

  • 正是我需要的信息。那么,我的问题的解决方案是:不要为 IPv6 地址实现地理定位。
【解决方案2】:

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

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


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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

        • 我完全不同意。出于多种原因,地理位置对公司来说非常有价值。一个简单的例子是防止欺诈。
        • 我使用地理定位将谷歌地图预先居中,使其更接近用户实际所在的位置。使应用程序更直观,更易于使用。有什么大不了的?
        • 地理位置总是将我的家选在离我实际居住地大约 100 英里的地方。当我在工作中访问使用它的网站时,他们都认为我在纽约,而实际上我在伦敦。在我的情况下,这比无用更糟糕。
        • @snurre,任何进行欺诈的人都可能使用代理或 VPN,所以你在那里没有取得太多成就。
        • 以一个人的当地货币显示价格如何?本地电话号码?从法国境内访问“google.com”时,您会自动重定向到“google.fr”。所有正当理由。
        【解决方案6】:

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

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

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

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

        【讨论】:

          【解决方案7】:

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

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

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

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

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

          【讨论】:

            【解决方案8】:

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

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

            联系人:姓名:私人客户 - Hurricane Electric

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

            联系人:国家代码:AT

            这是我的位置。

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

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

            【讨论】:

              猜你喜欢
              • 2012-01-04
              • 2011-05-23
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多