【发布时间】:2016-12-13 09:17:43
【问题描述】:
我有 3,000 行这种格式的 IP 范围:
5.9.0.0 5.9.255.255 Hetzner http://www.hetzner.de/
5.10.64.0 5.10.127.255 SoftLayer http://www.softlayer.com/
5.34.182.0 5.34.183.255 UA Servers https://itldc.com/
如果用户访问我的网站,我想查找他们的 IP 是否在此 IP 范围内,如果是,则阻止他们。用 PHP 查找 IP 的最快方法是什么? IP 范围是静态的,永远不会改变。
我已经考虑过创建一个 .dat 文件来存储 IP,这是一个好方法吗?
【问题讨论】:
-
postgresql 支持 CIDR 和 INET 数据类型,仅供参考。不知道 mysql 或 sqlite。
-
我删除了不兼容的数据库标签。请用您正在使用的数据库标记问题,或明确解释为什么它最初用 MySQL 和 SQLite 标记。
-
最快的方法是一些内存中(在进程之间共享)解决方案,其逻辑针对此特定用途量身定制。对你来说可能是一个巨大的过度杀伤(和不必要的工作)。对您的要求诚实。
标签: php database performance