C# | 【完全开源】手机号码归属地查询,一秒内百万次查询

简介: 这个开源项目是一个.NET库,可以通过手机号码获取号码归属地信息,包括运营商、国家、省份、城市、邮政编码、区号等信息。该库加载了一个包含46万条数据的“中国手机号归属地信息”数据集,并实现了高速查询。在我的7年老笔记本上执行一百万次查询耗时不足一秒。

image.png

C# | 【完全开源】手机号码归属地查询,一秒内百万次查询

@[toc]

简介

这个开源项目是一个.NET库,可以通过手机号码获取号码归属地信息,包括运营商、国家、省份、城市、邮政编码、区号等信息。
该库加载了一个包含46万条数据的“中国手机号归属地信息”数据集,并实现了高速查询。在我的7年老笔记本上执行一百万次查询耗时不足一秒。

快速上手

以查询中国大陆的手机号码归属地信息为例:

在NuGet页面中勾选预发行版本并搜索 ApeFree.Phone2Location.CN ,点击安装。

查询手机号码归属地的源码如下:

  // 创建数据库
  var db = PhoneDatabase.Factory.CreateChinaPhoneDatabase();

  // 通过手机号码获取归属地信息
  var result = db.GetLocationByPhone("13500008888");

  if (result == null)
  {
   
   
    Console.WriteLine("未查询到结果");
  }
  else
  {
   
   
    // 打印显示
    Console.WriteLine($"国家:{result.Country}\r\n省份:{result.Province}\r\n城市:{result.City}\r\n运营商:{result.TelecomOperator}\r\n区号:{result.AreaCode}\r\n邮编:{result.PostalCode}");
  }

运行上述代码将输出如下结果:

国家:中国
省份:广东
城市:广州
运营商:移动
区号:020
邮编:510000

原理

在实例化的时候就加载“中国手机号归属地信息”数据集,并计算出索引的数量和偏移地址。
在查询时,使用二分法查询号码信息所处的偏移地址,再从偏移地址使用流读取详细信息,并构造查询结果。
之所以能够一秒内百万次查询,是因为其使用了二分法进行查询,并且使用了流进行数据读取和处理。

结束语

代码开源在:https://github.com/landriesnidis/ApeFree.Phone2Location,希望能够帮助到需要查询手机号码归属地信息的人。如果您对该项目有任何建议或意见,欢迎在GitHub上提issue或pull request。如果您觉得该项目对您有帮助,也欢迎在GitHub上为该项目点个赞。

相关文章
|
20天前
|
数据采集 自然语言处理 安全
控制电脑手机的智能体人人都能造,微软开源OmniParser
微软研究团队推出OmniParser,旨在提升GPT-4V等多模态模型在用户界面操作方面的性能。通过解析用户界面截图为结构化元素,OmniParser显著增强了模型的交互能力,使其在多种基准测试中表现出色。该技术开源,促进了社区合作与技术创新,但同时也面临数据质量、计算资源及安全隐私等挑战。
46 14
|
28天前
|
开发框架 .NET API
以C#一分钟浅谈:GraphQL 数据类型与查询
本文从C#开发者的角度介绍了GraphQL的基本概念、核心组件及其实现方法。GraphQL由Facebook开发,允许客户端精确请求所需数据,提高应用性能。文章详细讲解了如何在C#中使用`GraphQL.NET`库创建Schema、配置ASP.NET Core,并讨论了GraphQL的数据类型及常见问题与解决方案。通过本文,C#开发者可以更好地理解并应用GraphQL,构建高效、灵活的API。
98 64
|
25天前
|
开发框架 .NET 测试技术
C# 一分钟浅谈:GraphQL 数据类型与查询
本文介绍了GraphQL的基本概念、数据类型及查询方法,重点从C#角度探讨了GraphQL的应用。通过Hot Chocolate库的实例,展示了如何在ASP.NET Core中实现GraphQL API,包括安装、定义Schema、配置及运行项目。文中还讨论了常见问题与解决方案,旨在帮助开发者更好地理解和使用GraphQL。
26 2
|
1月前
|
API
查询城市手机号段免费API接口教程
此API用于查询指定城市的手机号段、服务商、区号、邮编等信息。支持POST或GET请求,需提供用户ID、KEY及城市名称等参数。返回数据包括状态码、信息提示、查询数量、最大页码、当前页码、省份、城市、区号、邮编、区划代码及数据集等。示例中提供的ID和KEY为公共测试用,建议使用个人ID和KEY以获得更高的调用频率。
|
1月前
|
API
手机号段查询城市免费API接口教程
此接口用于根据手机号段查询相关信息,包括城市、运营商、区号等。支持POST和GET请求,需提供用户ID、KEY及手机号段前7位作为参数。返回数据包含状态码、信息提示及详细归属信息。示例请求地址:https://cn.apihz.cn/api/ip/haoduan.php?id=88888888&key=88888888&numbers=1321993。接口免费,建议使用个人ID与KEY以独享调用频次。
|
1月前
|
开发框架 C# iOS开发
基于C#开源、功能强大、灵活的跨平台开发框架 - Uno Platform
基于C#开源、功能强大、灵活的跨平台开发框架 - Uno Platform
|
1月前
|
网络协议 Unix Linux
精选2款C#/.NET开源且功能强大的网络通信框架
精选2款C#/.NET开源且功能强大的网络通信框架
|
2月前
|
SQL 缓存 分布式计算
C#如何处理上亿级数据的查询效率
C#如何处理上亿级数据的查询效率
47 1
|
7月前
|
IDE C# 开发工具
一个开源轻量级的C#代码格式化工具(支持VS和VS Code)
一个开源轻量级的C#代码格式化工具(支持VS和VS Code)
227 6
|
2月前
|
开发框架 缓存 算法
开源且实用的C#/.NET编程技巧练习宝库(学习,工作,实践干货)
开源且实用的C#/.NET编程技巧练习宝库(学习,工作,实践干货)