使用 PHP 数组式访问 ipip.net 数据库。
需要 PHP 5.4 以上版本,无其他依赖。
composer require larryli/monipdb
$monipdb = new \larryli\monipdb\Monipdb('17monipdb.datx');
// or $monipdb = new \larryli\monipdb\Monipdb('17monipdb.dat', false);
// find
echo "202.103.24.68: {$monipdb['202.103.24.68']}\n";
// dump
echo count($monipdb) . "\n";
for foreach ($monipdb as $ip => $name) {
echo "{$ip}: $name\n";
}
默认的 \larryli\monipdb\Monipdb
将会把数据文件一次性读入内存,
\larryli\monipdb\CachedMonipdb
在上述基础上使用内存缓存部分数据,以利于一次请求中多次重复查询;
\larryli\monipdb\DirectMonipdb
则不缓存内存数据,每个查询都会直接从数据文件中读取数据,
\larryli\monipdb\CachedDirectMonipdb
在上述基础上使用内存缓存重复查询的数据。
具体请参考 example 文件。
下载地址: https://www.ipip.net/free_download/
Ip 数据库主要业务逻辑均在 \larryli\monipdb\MonipdbTrait
中实现,可以直接在相关自定义类中直接使用。
比如在 Yii2 框架中使用组件包装。
对于基本使用,可以使用:
composer require larryli/monipdb ~1.0
以获得更好的执行性能。