手机号段速查笔记
前阵子帮朋友做一个用户手机号归属判断的小功能,就是那种能识别出输入号码是哪家运营商、是不是虚拟号段、能不能发营销短信之类的东西。本来以为网上随手一搜就有现成的正则或者 JSON 数据,结果找了一圈发现要么是好几年前的,要么就缺这缺那——物联网卡不全,虚拟运营商号段各种遗漏,1749 这种卫星号段基本没人提。
干脆自己整理了一份。
移动的号段我印象里一直是 134 到 139 打头,后来发现 1349 压根儿不算移动的,那是电信的卫星电话。134 去掉 9,剩下的 1340-1348 才是移动。挺多人不知道这个,有次跟同事聊起来,他说他手机号就是 1349 开头的,我还说你移动的号怎么跑电信去了,结果查了下人家那确实是海事卫星电话。当然普通人也办不到这种号,所以也不用太纠结。
移动这边比较全的是:134(0-8)、135、136、137、138、139,然后是 144 和 148 这俩物联网,147 也是移动的物联卡。150-159 这一段基本都是移动,但 154 我没见过有人用,查了下确实没在列表里。157 和 158 都是移动,包括 159。然后 165 是虚拟运营商挂移动下面的,1703、1705、1706 也是移动的虚拟号段,172 是物联网,178 是 4G 时代移动拿到的 FDD 牌照号段,182、183、184、187、188,然后 195、197、198 这三个是 5G 号段。197 这个挺有意思,中国移动单独申请的 197 号段,当时还搞了一波宣传,说是面向 5G 用户的专属号段,实际用起来跟 198 也没啥区别。
联通这边,130、131、132 是老传统了,用过小灵通或者早期 CDMA 的人应该都熟。140、145、146 都是物联网,155、156 也是联通的传统号段。166 刚出来的时候我还以为是什么虚拟运营商的号,后来发现就是联通自己的,跟 175、176 一样,属于 4G 后补的号段。167 是虚商挂联通下面,然后 1704、1707、1708、1709 也是联通的虚商号段。171 这个号段挺尴尬的,有段时间诈骗电话特别多,很多人看到 171 开头直接不接,我有个朋友就是 171 的号,收外卖电话经常被挂断,后来换号了。185、186 是联通的老 3G 号段了,当年办 iPhone 合约机全是 186 打头。196 是联通最新的 5G 号段,出来得比移动电信都晚。
电信这边,133 是 CDMA 时代遗留下来的,当年联通把 CDMA 业务卖给电信之后,133 就归了电信。1349 得单独说,它是卫星电话,归电信管,不是普通手机号。141 和 149 这俩是物联网。153 也是电信的号段,跟 133 一样是从联通时期过渡来的。162 是虚拟运营商挂电信,1700、1701、1702 都是电信的虚拟号段。173 是电信的 4G 号段,177 也是。1740 这个有意思,1740(0-5)是电信的卫星电话,但 1740(6-9)归工信部应急通信保障中心管,后面还有 1741(0-2)也是应急中心的,这些号段普通人接触不到。180、181、189 是电信的老号段,190、191、193、199 都是电信的 5G 号段,199 当年还搞过靓号拍卖。
广电只有 192 这一个号段,因为是新入局的运营商,号段资源确实少,但 192 整个号段都是广电的,没有虚拟运营商瓜分。
其他两个得提一下。中国交通通信信息中心有 1749 这个卫星号段,主要是海事卫星电话用的,远洋渔船、海上钻井平台之类的场景。工信部应急通信保障中心有 1740(6-9)和 1741(0-2),专门用于应急通信保障,比如自然灾害时架设临时通信,这个普通人更是用不上。
说到虚拟运营商,最乱的就是 170 号段。1700 到 1709 分别归属不同运营商,如果不仔细查根本分不清。1700、1701、1702 是电信的,1703、1705、1706 是移动的,1704、1707、1708、1709 是联通的。而且同样是 170 开头,不同号段的归属运营商不一样,做号码归属判断的时候不能一刀切。之前看到有些网站直接把 170 全部标成虚拟运营商,不分具体是哪家,做精度要求不高的场景还行,真要细分就不够用了。
我整理完发现有个小规律,号段分配基本是按时间线走的:2G 时代用 13x 和 15x,3G 时代用 18x 和 17x(一部分),4G 时代补了 17x 和 19x(一部分),5G 时代开始大规模用 19x。但这个规律并不严格,中间穿插了物联网、虚拟运营商、卫星通信这些特殊用途的号段,所以也不能完全按时间线来推断。
做号码归属判断的时候,如果要覆盖全面,至少要把这几类都考虑进去:普通公众号段、物联网号段、虚拟运营商号段、卫星通信号段。普通公众号段网上资源很多,物联网和卫星通信的号段容易漏,虚拟运营商的细分归属也容易搞混。我踩过一次坑,把 141 当成普通电信号段去查归属地,结果根本查不到,后来才知道那是物联网卡,没有固定的归属地概念。还有一些归属地查询接口,对 144、148 这类物联网号段直接返回空,如果业务里没有处理这种情况,可能就会出现空指针或者显示异常。
附一下我整理完的完整列表,有兴趣的可以直接拿去用:
中国移动
134(0-8)、135、136、137、138、139、144(物)、147、148(物)、150、151、152、157、158、159、165(虚)、1703(虚)、1705(虚)、1706(虚)、172(物)、178、182、183、184、187、188、195、197(5G)、198
中国联通
130、131、132、140(物)、145、146(物)、155、156、166、167(虚)、1704(虚)、1707(虚)、1708(虚)、1709(虚)、171(虚)、175、176、185、186、196(5G)
中国电信
133、1349(卫)、141(物)、149(物)、153、162(虚)、1700(虚)、1701(虚)、1702(虚)、173、1740(0-5)(卫)、177、180、181、189、190(5G)、191、193、199
中国广电
192(5G)
中国交通通信信息中心
1749(卫)
工信部应急通信保障中心
1740(6-9)(卫)、1741(0-2)(卫)
| 运营商 | 号段 |
|---|---|
| 中国移动 | 134(0-8)、135、136、137、138、139、144(物)、147、148(物)、150、151、152、157、158、159、165(虚)、1703(虚)、1705(虚)、1706(虚)、172(物)、178、182、183、184、187、188、195、197(5G)、198 |
| 中国联通 | 130、131、132、140(物)、145、146(物)、155、156、166、167(虚)、1704(虚)、1707(虚)、1708(虚)、1709(虚)、171(虚)、175、176、185、186、196(5G) |
| 中国电信 | 133、1349(卫)、141(物)、149(物)、153、162(虚)、1700(虚)、1701(虚)、1702(虚)、173、1740(0-5)(卫)、177、180、181、189、190(5G)、191、193、199 |
| 中国广电 | 192(5G) |
| 中国交通通信信息中心 | 1749(卫) |
| 工信部应急通信保障中心 | 1740(6-9)(卫)、1741(0-2)(卫) |
AD: