我正在尝试确定网站访问者是否来自欧盟国家,如果是的话,根据他们的法律向他们展示一个cookie同意横幅。
我下载了一个表,列出了所有欧盟国家的IPv4 (即: 1.178.224.0/19),并将其上传到mySQL。表中有107,000行。我可以使用$_SERVER‘’REMOTE_ADDR‘获取用户IP。我正在寻找最简单和最快的方法来检查使用PHP,如果用户的ip地址落在范围内。
一种想法是在一个表中创建2列,其中包含每个IPv4的起始和结束长整数。该网站将使用ip2long()将用户的IP地址更改为一个长整数,然后查看它是否落入任何IPv4的2列范围内。不确定这是否可能。如果这是个好主意,那么如何获得IPv4地址的起始和结束长整数呢?
我找到了几个解决方案来查看IP是否在我的表中列出的范围内(即: 1.178.224.0/19),但是由于有107,000行,这可能需要一段时间才能处理。我正在寻找一个快速运行的解决方案,这样就不会拖慢每个不在欧盟国家的用户的速度。
发布于 2021-11-10 15:07:07
你可以使用免费的在线服务,而不是自己尝试实现地理定位。您可以非常快速地实现此功能。以此服务为例:
http://geolocation-db.com/documentation
我会使用Javascript,而不是PHP,只有当用户在欧盟国家时,您才会弹出cookie同意横幅。
https://stackoverflow.com/questions/69915310
复制相似问题