链氪巴士
  1. 首页
  2. 站点导航
  3. 文章
  4. 快讯
  5. 软件
  6. 书刊
  7. 关于

xluohome/phonedata:手机号码归属地信息库与查询

这是github上的一个项目,可能是能找到的最新最全的中国境内手机号归属地信息库,基于GO语言实现,使用二分查找法。包含phone.dat文件,最后更新于2023年2月,文件大小、手机号段记录条数明确,文件格式特定。有GO语言的查询示例、命令行查询方式、性能测试结果,还有其他多...

访问官网 →

【Github】项目名:xluohome/phonedata – 手机号码归属地信息库与查询

项目简介

这是github上的一个项目,可能是能找到的最新最全的中国境内手机号归属地信息库,它基于GO语言实现,使用二分查找法。该信息库包含phone.dat文件,其最后更新于2023年02月,文件大小为4,484,792字节,手机号段记录条数达497191。phone.dat文件有特定格式,头部8个字节,版本号占4字节,第一个索引偏移占4字节,记录区每条记录格式为”<省份>|<城市>|<邮编>|<长途区号>\0″,索引区每条记录格式为”<手机号前七位><记录区的偏移><卡类型>”,每个索引长9个字节。

安装与使用

如果是在GO语言环境下,例如使用vitest.go,可以通过如下代码示例进行查询:

packagemain
import (
    "fmt"
    "github.com/xluohome/phonedata"
)
funcmain() {
    pr, err := phonedata.Find("18957509123")
    if err!= nil {
        panic(err)
    }
    fmt.Print(pr)
}

此外,还有命令行查询方式,在cmd目录下phonedata是一个命令行查询手机号归属地信息的终端程序。在Linux下:#PHONE_DATA_DIR=.././phonedata 18957509123;在Windows下:>set PHONE_DATA_DIR=../>phonedata.exe 18957503123,查询结果会显示如PhoneNum、AreaZone、CardType、City、ZipCode、Province等信息。

性能测试

在go1.17.6 windows/amd64环境下进行性能测试,结果为BenchmarkFindPhone – 128454013152.5ns/op。

其他语言实现

如果想用其他语言实现类似功能,也有对应的资源。例如python:https://github.com/ls0f/phone;php:https://github.com/shitoudev/phone – location, https://github.com/iwantofun/php_phonephpext:https://github.com/jonnywang/phone;java:https://github.com/fengjiajie/phone – number – geo, https://github.com/EeeMt/phone – number – geo;Node:https://github.com/conzi/phone;C++:https://github.com/yanxijian/phonedata;C#:https://github.com/sndnvaps/Phonedata, https://github.com/rwecho/Phone.Dotnet.git(dotnetcore);Rust:https://github.com/vincascm/phonedata;Kotlin:https://github.com/bytebeats/phone – geo;Ruby:https://github.com/forwaard/phonedata。

项目总结

这个xluohome/phonedata项目为手机号归属地查询提供了方便的工具,无论是基于GO语言直接使用,还是在其他多种语言下的实现,都有相应的资源可供参考。不过要注意,手机号归属地信息是通过网上公开数据进行收集整理,对于数据的绝对正确性不做任何保证,在生产环境使用前需要自行校对测试。欢迎大家留言讨论关于这个项目的使用心得或者遇到的问题等。

项目地址

GitHub链接直达