当前位置:编程学习 > php >>

PHP解析纯真IP库新格式CZDB版本

CZDB目前官方已支持JAVA、C语言和PHP解析程序,我们直接拿来用就可以了。也就是PHP的解析程序。

PHP解析程序的GitHub地址:czdb_searcher_php#

在项目目录下运行以下命令来安装 CZDB Searcher:

composer require czdb/searcher
如果找不到包,可能是因为你没有使用composer 2.x版本,可以使用以下命令来安装composer 2.x版本:

composer self-update --2
然后将下面代码扔进functions.php文件里:

//解析纯真IP获取评论者ip归属地 开始

require_once __DIR__ . '/vendor/autoload.php';

use Czdb\DbSearcher;

//评论作者归属地函数
//Code by HJYL.ORG
//IP数据库由纯真CZ88提供
function getCity($ip){
    $dbSearcher = new DbSearcher("cz88_public_v4.czdb的路径", "BTREE", "key");
    // get_template_directory() . "/czdb/cz88_public_v4.czdb" 这是某主题目录下的文件夹
    // 默认BTREE,搜索模式(例如,"BTREE" 少量查询 或者 "MEMORY" 大量查询)。
    // key,即密钥,从https://cz88.net/geo-public获取
    
    $region = $dbSearcher->search($ip);
    // 将字符串拆分成各个部分
    if(strpos($region, "\t")){
        $region = preg_replace('/\t+/','–',$region);

    }elseif(strpos($region, " ")){
        $region = str_replace(' ','–',$region);
    }

    $region = explode("–", $region);

    //分别获取国家、省、市字段
    $country = $region[0] ?? "";
    $province = $region[1] ?? "";
    $city = $region[2] ?? "";

    $dbSearcher->close();

    //优先显示城市,其次省,最后国家
    if($ip == '127.0.0.1'){
        $data = '易做图';
    }elseif($city == "" || false !== strpos($city, '移动') || false !== strpos($city, '电信') || false !== strpos($city, '联通')){
        $data = $province;
    }elseif($province == "" || false !== strpos($province, '移动') || false !== strpos($province, '电信') || false !== strpos($province, '联通')){
        $data = $country;
    }else{
        $data = $city;
    }
    
    return $data;
}

//解析纯真IP获取评论者ip归属地 结束
调用方法:

echo getCity("8.8.8.8");


新版先得在官方注册登录,其次根据它的要求帮它宣传(例如网站加上他们网站链接),并截图给它审核,通过之后你才会有授权,你才能得到key。
有了这个key你才能使用czdb格式数据库。感觉比以前麻烦很多

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,