我正在尝试确定网站访问者是否来自欧盟国家,如果是,则根据他们的法律向他们展示 cookie 同意横幅。
我下载了一个列出所有欧盟国家 IPv4 的表格(即:1.178.224.0/19)并将其上传到 mySQL。表中有 107,000 行。我可以使用 $_SERVER['REMOTE_ADDR'] 获取用户 IP。如果用户的 IP 地址在该范围内,我正在寻找使用 PHP 进行检查的最简化和最快的方法。
一个想法是在表中创建 2 列,其中包含每个 IPv4 的开始和结束长整数。该网站将使用 ip2long() 将用户 IP 地址更改为长整数,然后查看它是否在任何 IPv4 的 2 列范围内。不确定这是否可能。如果这是个好主意,我如何获得 IPv4 地址的开始和结束长整数?
我找到了几种解决方案来查看 IP 是否在我的表中列出的范围内(即:1.178.224.0/19),但是对于 107,000 行,这可能需要一段时间来处理。我正在寻找一种运行速度快的解决方案,以免减慢每个不在欧盟国家/地区的用户的速度。