手机号段确定手机号码服务商类别

   1:  using System;
   2:  using System.Collections.Generic;
   3:  using System.Linq;
   4:  using System.Text;
   5:   
   6:  namespace AnkeEdu.Tools
   7:  {
   8:   
   9:      /// <summary>
  10:      /// 电话号码帮助类
  11:      /// author:Andrew.He
  12:      /// 给定一个电话号码,返回电话号码号段所属网络
  13:      /// </summary>
  14:      public class PhoneHelper
  15:      {
  16:          #region mobileRegex 检测号码的正则表达式
  17:          /// <summary>
  18:          /// 检测号码的正则表达式
  19:          /// </summary>
  20:          private const string mobileRegex = @"(86)?0?1\d{10}";
  21:          #endregion
  22:   
  23:          #region keyValues 手机号段集合,PhoneType.Mobile 移动 PhoneType.Unicom 联通 PhoneType.Telecom 电信
  24:          /// <summary>
  25:          /// 手机号段集合,PhoneType.Mobile 移动 PhoneType.Unicom 联通 PhoneType.Telecom 电信
  26:          /// </summary>
  27:          private static List<PhoneKeyValue> keyValues = new List<PhoneKeyValue>()
  28:          {
  29:              new PhoneKeyValue("1340",PhoneType.Mobile),
  30:              new PhoneKeyValue("1341",PhoneType.Mobile),
  31:              new PhoneKeyValue("1342",PhoneType.Mobile),
  32:              new PhoneKeyValue("1343",PhoneType.Mobile),
  33:              new PhoneKeyValue("1344",PhoneType.Mobile),
  34:              new PhoneKeyValue("1345",PhoneType.Mobile),
  35:              new PhoneKeyValue("1346",PhoneType.Mobile),
  36:              new PhoneKeyValue("1347",PhoneType.Mobile),
  37:              new PhoneKeyValue("1348",PhoneType.Mobile),
  38:              new PhoneKeyValue("135",PhoneType.Mobile),
  39:              new PhoneKeyValue("136",PhoneType.Mobile),
  40:              new PhoneKeyValue("137",PhoneType.Mobile),
  41:              new PhoneKeyValue("138",PhoneType.Mobile),
  42:              new PhoneKeyValue("139",PhoneType.Mobile),
  43:              new PhoneKeyValue("147",PhoneType.Mobile),
  44:              new PhoneKeyValue("150",PhoneType.Mobile),
  45:              new PhoneKeyValue("151",PhoneType.Mobile),
  46:              new PhoneKeyValue("152",PhoneType.Mobile),
  47:              new PhoneKeyValue("157",PhoneType.Mobile),
  48:              new PhoneKeyValue("158",PhoneType.Mobile),
  49:              new PhoneKeyValue("159",PhoneType.Mobile),
  50:              new PhoneKeyValue("182",PhoneType.Mobile),
  51:              new PhoneKeyValue("183",PhoneType.Mobile),
  52:              new PhoneKeyValue("184",PhoneType.Mobile),
  53:              new PhoneKeyValue("187",PhoneType.Mobile),
  54:              new PhoneKeyValue("188",PhoneType.Mobile),
  55:              new PhoneKeyValue("130",PhoneType.Unicom),
  56:              new PhoneKeyValue("131",PhoneType.Unicom),
  57:              new PhoneKeyValue("132",PhoneType.Unicom),
  58:              new PhoneKeyValue("145",PhoneType.Unicom),
  59:              new PhoneKeyValue("155",PhoneType.Unicom),
  60:              new PhoneKeyValue("156",PhoneType.Unicom),
  61:              new PhoneKeyValue("185",PhoneType.Unicom),
  62:              new PhoneKeyValue("186",PhoneType.Unicom),
  63:              new PhoneKeyValue("133",PhoneType.Telecom),
  64:              new PhoneKeyValue("1349",PhoneType.Telecom),
  65:              new PhoneKeyValue("153",PhoneType.Telecom),
  66:              new PhoneKeyValue("180",PhoneType.Telecom),
  67:              new PhoneKeyValue("181",PhoneType.Telecom),
  68:              new PhoneKeyValue("189",PhoneType.Telecom)
  69:          };
  70:          #endregion
  71:   
  72:          #region GetPhoneType 检测手机号码是否为对应的手机类别
  73:          /// <summary>
  74:          /// 检测手机号码是否为对应的手机类别
  75:          /// </summary>
  76:          /// <param name="phoneNo"></param>
  77:          /// <returns></returns>
  78:          public static PhoneType GetPhoneType(string phoneNo)
  79:          {
  80:              if (!IsPhoneNo(phoneNo))
  81:              {
  82:                  return PhoneType.NotPhoneNo;
  83:              }
  84:   
  85:              var model = keyValues.Where(x => phoneNo.StartsWith(x.key)).FirstOrDefault();
  86:              if (model != null)
  87:              {
  88:                  return model.PhoneTypeValue;
  89:              }
  90:   
  91:              return PhoneType.Other;
  92:          }
  93:          #endregion
  94:   
  95:          #region IsPhoneNo 检测号码是否为手机号码
  96:          /// <summary>
  97:          /// 检测号码是否为手机号码
  98:          /// </summary>
  99:          /// <param name="phoneNo"></param>
 100:          /// <returns></returns>
 101:          private static bool IsPhoneNo(string phoneNo)
 102:          {
 103:              if (string.IsNullOrEmpty(phoneNo))
 104:              {
 105:                  return false;
 106:              }
 107:   
 108:              return System.Text.RegularExpressions.Regex.Match(phoneNo, mobileRegex,
 109:                  System.Text.RegularExpressions.RegexOptions.IgnoreCase |
 110:                  System.Text.RegularExpressions.RegexOptions.ECMAScript).Success;
 111:          }
 112:          #endregion
 113:      }
 114:   
 115:      #region PhoneKeyValue 手机号段实体
 116:      /// <summary>
 117:      /// 手机号段实体
 118:      /// </summary>
 119:      public class PhoneKeyValue
 120:      {
 121:          public PhoneKeyValue(string key,PhoneType type)
 122:          {
 123:              this.key = key;
 124:              this.PhoneTypeValue = type;
 125:          }
 126:          public string key { get; set; }
 127:          public PhoneType PhoneTypeValue { get; set; }
 128:      }
 129:      #endregion
 130:   
 131:      #region PhoneType 号码类别
 132:      /// <summary>
 133:      /// 号码类别
 134:      /// </summary>
 135:      public enum PhoneType
 136:      {
 137:          /// <summary>
 138:          /// 不是一个手机号码
 139:          /// </summary>
 140:          NotPhoneNo,
 141:          /// <summary>
 142:          /// 未知所属,其他
 143:          /// </summary>
 144:          Other,
 145:          /// <summary>
 146:          /// 移动号码
 147:          /// </summary>
 148:          Mobile,
 149:          /// <summary>
 150:          /// 联通号码
 151:          /// </summary>
 152:          Unicom,
 153:          /// <summary>
 154:          /// 电信号码
 155:          /// </summary>
 156:          Telecom
 157:      }
 158:      #endregion
 159:  }

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

手机号段确定手机号码服务商类别

时间: 2024-08-11 05:31:51

手机号段确定手机号码服务商类别的相关文章

最新手机号码归属地数据库 联通号段 移动号段 电信号段 170号段 手机号段查询 2014年6月 300635条

最新手机号码归属地数据库 每月更新一次移动号段: 134 135 136 137 138 139 147 150 151 152 157 158 159 178 182 183 184 187 188 联通号段:130 131 132 145 155 156 176 185 186 电信号段:133 153 177 180 181 189虚拟运营商:170 2014年6月 300635条 更新历史: 2014-05-01 299920条记录2014-04-01 296010条记录2014-03-

免费分享_最新手机号段归属地数据库(2017年4月更新)360569记录

2017年4月最新版手机号段归属地,也叫手机归属地数据库  共360569条记录,三种格式:MYSQL,MSSQL,access MDB格式 免费提供给大家,非常齐全. 字段:手机号码前7位,省份,城市,区号,运营商,邮编 末尾如下: 360551 1899981 新疆 乌鲁木齐 中国电信 0991 830000360552 1899982 新疆 乌鲁木齐 中国电信 0991 830000360553 1899983 新疆 乌鲁木齐 中国电信 0991 830000360554 1899984

mysql_mssql_access_2017年最新手机号段归属地数据库(17年4月更新)360569记录

mysql,mssql,access 三种格式免费分享给大家,末尾有下载地址 2017年4月最新版手机号段归属地,也叫手机归属地数据库  共360569条记录,三种格式:MYSQL,MSSQL,access MDB格式 字段:手机号码前7位,省份,城市,区号,运营商,邮编 末尾如下: 360551 1899981 新疆 乌鲁木齐 中国电信 0991 830000360552 1899982 新疆 乌鲁木齐 中国电信 0991 830000360553 1899983 新疆 乌鲁木齐 中国电信 0

最新手机号段归属地数据库(2017年4月16日版)免费下载

2017年4月16日版   360569条记录最新 手机号段数据库 号码归属地数据库  移动号段 联通号段 电信号段 14号段 170号段(虚拟运营商)   权威  全面  准确  规范字段包括 省份 城市 运营商 邮编 区号 等信息,对于数据分析.号码归属地查询等非常有帮助 三种格式:MYSQL,MSSQL,access MDB格式 字段:手机号码前7位,省份,城市,区号,运营商,邮编 末尾如下: 360551 1899981 新疆 乌鲁木齐 中国电信 0991 830000360552 18

2017年最新VOS2009/VOS3000最新手机号段导入文件(手机归属地数据)

VOS2009.vos3000.vos5000最新手机号段归属地数据库导入文件. 基于2017年4月最新版手机号段归属地制作 共360569条记录,兼容所有版本的昆石VOS,包括VOS2009.vos3000.vos5000 导入比较简单.下载后解压到桌面在VOS里面选择文件导入即可.   如图: 下载地址: http://www.51voip.org/post/60.html

最新昆石VOS2009/VOS3000手机号段导入文件(手机归属地)

使用2017年4月最新版手机号段归属地制作,支持所有版本的VOS 共360569条记录,兼容所有版本的昆石VOS,包括VOS2009.vos3000.vos5000 导入比较简单.下载后解压到桌面在VOS里面选择文件导入即可. 如图: 下载地址: VOS2009_VOS3000_2.0_2.4_3.2 https://51voip.ctfile.com/fs/vy3198451622 VOS2009_VOS3000__4.0_6.0_7.0: https://51voip.ctfile.com/

最新手机号段归属地,IP地址归属地数据库

最新手机号段归属地数据库-购买  http://qqzeng.com IP地址数据库-代码   SDK API 多语言解析Dat 导入数据库脚本 https://github.com/zengzhan/qqzeng-ip IP地址数据库-最新   微信 qqzeng-ip官网 http://qqzeng.com演示 http://qqzeng.com/ip

基于gevent全国手机号段spider蜘蛛爬虫

首先介绍下python异步执行,python有两种方法编写异步代码: 1.corutines协程(也称为greenlets) 2.回调 gevent是greenlets的一种实现方式,可以通过pip方便的安装gevent模块.gevent执行方式实际上是代码块的交替执行,具体的可以看下这篇blog,我就不重复造轮子了. 值得一提的是,gevent封装了很多接口,其中一个是著名的猴子补丁monkey, from gevent import monkey monkey.patch_all() 这两行

2014年最新中国手机号段大全

来自豆瓣:http://www.douban.com/note/347831403/ 2014年最新中国手机号段大全 2014-04-28 10:46:56 [最新中国手机号段大全]移动:134.135.136.137.138.139.150.151.152.157.158.159.182.183.184.187.188.178(4G).147(上网卡):联通:130.131.132.155.156.185.186.176(4G).145(上网卡):电信:133.153.180.181.189