C++手机号码归属查询

源代码在: https://github.com/pzhu1015/easycpp

编译要求:

因为代码中将数据字典转成了二进制文件,并压缩减少执行文件大小,用到了两种压缩方案,

1. -llzma (压缩率高)

2. -lz (压缩率一般)

默认: 使用第一种,如果要使用第二种可以定义宏: -DPHONEDATA_GZIP

代码使用中只需要#include "phonedata.h", 这个文件会自动根据当前环境要求选择使用哪种压缩的数据, phonedata.h为查询算法, 还有两个数据文件phone_xz.h, phone_gz.h。

数据来源:phone_data: 手机号归属地查询 (gitee.com)

  • 归属地信息库文件大小:4557kb
  • 归属地信息库最后更新:2025年02月
  • 手机号段记录条数:517258

具体用法如下:

#include "phonedata.h"
void TestPhoneData()
{
    std::vector<std::string> numbers = {
        "15695866526",
        "18069202072",
        "13819813415",
        "15306627776",
        "13355915301",
        "13262429999",
        "15824205247",
        "18167219893",
        "15968925439",
        "15051515852",
        "80901142",
    };
    for (const auto &number: numbers)
    {
        auto pr = phonedata::PhoneData::Instance()->Find(number);
        if (!pr)
        {
            ERROR("未找到此手机号信息");
            return;
        }
        INFO("[%s][%s-%s][%s]", pr->Number.data(), pr->Province.data(), pr->City.data(), pr->CardType.data());
    }
}

输出结果:
[15695866526][浙江-宁波][中国联通]
[18069202072][浙江-宁波][中国电信]
[13819813415][浙江-宁波][中国移动]
[15306627776][浙江-宁波][中国电信]
[13355915301][浙江-宁波][中国电信]
[13262429999][浙江-温州][中国联通]
[15824205247][浙江-宁波][中国移动]
[18167219893][浙江-宁波][中国电信]
[15968925439][浙江-宁波][中国移动]
[15051515852][江苏-苏州][中国移动]
未找到此手机号信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值