statsig / ip3country
IP 地址查询 2 位国家代码
v0.1.0
2022-01-20 01:36 UTC
Requires
- php: >=7.0.0
Requires (Dev)
- phpunit/phpunit: ~4.0
This package is not auto-updated.
Last update: 2024-09-13 12:51:02 UTC
README
这是一个零依赖、超级小的 IP 地址到 2 位 国家代码 查询库。已经有一些库可用,但没有一个符合我们对二进制大小和速度的要求。
与大多数替代品相比(通常在 40MB 以上,但可能提供更多功能),本项目整体大小仅为 <500KB。
本项目使用的数据库是从 IP2Location 压缩而来。他们的 DB1.LITE 版本在 CCA 下提供,如下所述
注意
本站或产品包含从 https://lite.ip2location.com 获取的 IP2Location LITE 数据。
使用方法
$ composer require statsig/ip3country
// import require_once __DIR__ . '/../vendor/autoload.php'; use ip3country\IP3Country; // Initialize $ip3c = new IP3Country(); // Lookup using ip4 str echo $ip3c->lookup("1.1.1.1"); // 'US' echo $ip3c->lookup("123.45.67.8"); // 'KR' // Lookup using numeric ip echo ip3country.lookupNumeric(2066563848)); // 'KR'
测试
./vendor/bin/phpunit tests/TestCountries.php
准确性
ip3country
的准确性取决于 IP2Location LITE 的准确性。根据我们的经验,对于国家查询,它足够准确,适用于大多数应用程序。
IP2Location 在此处发布准确性报告: https://www.ip2location.com/data-accuracy
还有这份第三方报告可供参考: https://www.cl.cam.ac.uk/~nz247/publications/JSAC2011-Geolocation.pdf
名称
在 npm 上,“ip2country”的所有变体已被占用,所以我们决定提升它。
动机
在 Statsig,我们需要一个库来评估基于位置的 Feature Gates(功能开关)的条件。我们使用 ip3country 为新功能的国家级别发布或 A/B 测试提供动力。