为相同的前 16 位 IP 地址假设统一的地理 IP 分辨率是不是安全?

Posted

技术标签:

【中文标题】为相同的前 16 位 IP 地址假设统一的地理 IP 分辨率是不是安全?【英文标题】:Is it safe to assume uniform geo-ip resolution for same first-16-bit IP addresses?为相同的前 16 位 IP 地址假设统一的地理 IP 分辨率是否安全? 【发布时间】:2011-06-18 20:47:44 【问题描述】:

我有一个地理敏感的 web 应用程序,我将请求的 IP 发送到远程的商业 ip-to-location 服务,然后返回国家、城市、ISP 等以获取 IP。

我目前将 IP 查找缓存在我的数据库中,以便使后续查找更快且免费(每次查找的商业服务费用)。

我想知道我是否可以通过假设前 16 位(即 aaa.bbb.ccc.ddd 地址中的 aaa.bbb)始终具有统一的位置来进一步优化我的缓存。这样我最多可以缓存 2^15 条记录。 我不太介意 ISP 的统一性,但这些信息也会有所帮助。

【问题讨论】:

我只有 3 个字母给你:V.P.N. 【参考方案1】:

我建议至少降低到 /24 分辨率。通常 /16 会告诉您 ISP 而不是城市,反之亦然。

如果您想了解地图的真实外观,您可以花费49 USD 购买 Geobytes 的GeoNetMap 数据库的开发人员许可。开发人员许可证允许您将整个地图从 IP 块下载到位置作为一堆 CSV 文件,但不包括将其部署到生产服务器上。 Geobytes 具有完全本地化的额外优势,因此查找速度很快。

MaxMind 也有一个 free downloadable map offering,尽管它从完整地图中有所删减,产生的错误率大约是两倍。

【讨论】:

【参考方案2】:

不,这不安全。例如,如果您在 216.34.181.45 (Slashdot) 上进行 GeoIP 查找,您将获得加利福尼亚州山景城。如果您在 216.34.1.1 上进行查找,您会得到密苏里州切斯特菲尔德。

关于缓存,请记住 IP 可以在空间上移动。如果 ISP 破产并且其区块被其他人购买,则该 IP 区块将移动位置。

【讨论】:

以上是关于为相同的前 16 位 IP 地址假设统一的地理 IP 分辨率是不是安全?的主要内容,如果未能解决你的问题,请参考以下文章

ipv6 地址说明

IP子网划分

ip地址分类

IP数据包的格式

要求划分16个子网,每个子网16台主机,请帮忙划分一下子网掩码

将__m256i的前N位或后N位设置为1,其余为0的有效方法