我正在尝试限制我对 IP 地理位置 API 的请求数量,我想知道这是否会准确确定用户国家/地区;
我的 IP 表
ID |-----ip-----|国家|
1 |1.194.121.200|美国
如果我的数据库中有上述内容,我是否可以对前两个八位字节中具有相同整数的 IP(1.194.208.105(使用相同的国家/地区,以避免另一个 API 请求?
不可靠,不。
- IP 子网按位掩码工作,位掩码仅偶尔与点分四位字节对齐。
- IP 分配会发生变化。
- 由于IPv4稀缺性块经常被分解成越来越小的部分,分配在网络规模和地理位置方面可能会发生巨大变化。
例如:几年前,Azure遇到了问题,因为他们从LACNIC(南美(购买了一个IP块,用于他们在美国的云中。这造成了各种破坏,因为使用陈旧的IP注册/地理位置数据的人开始抱怨他们不希望他们的数据位于美国境外。
请务必将每个 IP 的结果缓存一段合理的时间,但除非您的 API 提供商为您提供该数据,或者您想要构建自己的 IP 地理定位服务,否则您将无法按 netblock 进行缓存。