0

当用户注册时,我将验证国家/地区。例如,此登录表单中只有西班牙、荷兰和法国,此登录表单中只有美国。

我有一个正在运行的服务,当我给它一个 IP 地址时,它可以让我知道这个国家。唯一不好的是请求很昂贵,所以我想对其进行优化。

我不太了解 IP 地址,但我想出了以下“算法”

一个 IP 地址最多 3 个数字的表。(例如:11.111.11.x)并把国家代码保存在同一个表中。或者如果可能的话,最多可以有 2 个数字。像这样我会向服务发送更少的请求。

现在问题来了:

以 3 个数字开头的 IP 地址总是来自同一个国家/地区是否总是正确的?

例如

80.224.6.x 始终适用于西班牙 80.224.7.x 始终适用于西班牙

还是我很幸运我可以这样说:80.224.xx 总是用于西班牙等...

4

1 回答 1

2

一句话,没有。各种大小的块已分发给国家、公司、大学等,而且几乎没有押韵或理由。

你想要的是一个带有数据库的地理定位库。这个是免费的;有更好的要花钱的,但是免费的还不错。这样的库提供了一个 API,您可以使用它来半可靠地查找给定 IP 地址的位置。在国家一级,可靠性相当不错。

于 2011-08-23T11:21:39.067 回答