教你"自定义"选择手机号码

声明

本教程仅以技术交流为前提,不得违反法律法规,否则一切责任由操作者自行承担。


1. 缘由

起初是自己在网上购买一张手机卡准备自己使用,但在激活的过程中我发现手机号可以自由选择的。激活时,系统会提供一个号码的页面,页面里有几十个号码可供挑选,并且可以“换一批”,于是我打算“自定义”手机号试一试,当然这个“自定义”并不可能完全的自己去编写你想要的手机号,而是在系统提供的所有号码中,选择你最喜欢的一个。一般而言,系统会提供几千至几万个号码可供挑选,所以比你在页面的选择余地大了很多倍。

号码列表如下图

号码列表

2. 如何找到所有的号码?

通过分析电脑浏览器,分析页面,可以得知浏览器会向服务器请求一些参数,然后服务器会根据参数返回一些手机号。具体参数如下图:

服务器返回的参数

一共有9个参数,我们只需要关心pageSize这个参数即可。因为它代表着我们一次能获取多少个号码。

3. 那么如何知道目前号码池一共有多少个手机号呢?

答案也非常简单。

当我把上述参数配置好以后,请求服务器,服务器会返回JSON格式的字符串,具体如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
{
"bean": {
"cityCode": "0816",
"hss": "HL***",
"pageCount": "10922",
"pageNum": "1",
"pageSize": "5",
"phoneType": "0",
"phoneTypeName": "非三同",
"provCode": "280",
"reginCode": "12",
"stateType": "28",
"totalCount": "54610",
"transactionId": "1085**********************"
},
"beans": [
{
"phoneNo": "15196263985"
},
{
"phoneNo": "18780353629"
},
{
"phoneNo": "15182301620"
},
{
"phoneNo": "15892655729"
},
{
"phoneNo": "15281683225"
}
],
"returnCode": "0000",
"returnMessage": "号码列表查询成功",
"timeStamp": "1560863581187"
}

上述的JSON字符串中,带*符号的我替换了。此时我们应该注意到totalCount字段。该字段其实就是代表目前号码池有多少个号码,也就是说,在我本次请求服务器后,目前号码池一共有54610个号码可以供我们选择。

既然知道了号码池总数,剩下的是我们只需要把该号码都请求出来,然后直接挑选即可。

4. 请求号码池内的所有号码

回到步骤2,修改请求参数字段pageSize,把值改成54610

所以最终参数应该如下:

1
2
3
4
5
6
7
8
9
hss: HL***
provCode: 280
cityCode: 0816
pageNum: 1
pageSize: 54610
phoneType: 0
transactionId: 10852*****************
stateType: 28
reginCode: 12

最后发送请求至服务器,不出意外的话,服务器将会返回给我们一个携带有54610个号码的JSON字符串,如下图:

所有号码

5. 处理/筛选号码

由于号码都是json格式,这个时候我们应该对号码进行处理,以便于后续能够被靓号筛选软件使用。

处理该json格式的字符串我使用的是文本编辑器“editplus”,你们也可以使用“notepad++”。

处理方法简单:

  1. 在页面上全选所有内容、复制

  2. 打开editplus,粘贴

  3. 选择字符串:"},{"phoneNo":",Ctrl+H快捷键,替换

  4. 替换时,勾选“使用正则表达式”

  5. 修改字符串:"},{"phoneNo":",让它不被正则表达式转义,最终为:\"\},\{\"phoneNo\":\"

  6. 增加替换的内容为:\n,这个是换行键的转义符。通常一个回车键是由”换行+回车“两种符号组成。但是在editplus软件中,只需要有换行符号就行,所以我们只需要填写\n,其他的软件可能要填写成\r\n。这些只要学过编程的同学,应该都知道。再说一个小知识点,win下换行符是\r\n(两个字符);Linux 下换行符是 \n;Mac 下换行符是 \r

  7. 最后,点击“全部替换”按钮

  8. 最终替换界面和替换效果如下图:

    替换字符串

    替换效果

6. 利用软件,筛选出靓号

在第五步骤的时候,已经把json字符串中不必要的文本已经替换成换行了,接下来是利用软件,对这些号码进行筛选,从而能分辨出那些是靓号。

靓号筛选软件比较多,我这里不做推荐,有兴趣的同学可以自行搜索一下,我贴出我的筛选成果,如下图:

靓号

7. 使用浏览器的开发者工具,进行选号

上一步骤中,我们已经成功的筛选出心怡的手机号了。此时我们利用浏览器的开发则工具,修改页面里

修改dom

将页面里的号码,修改我们从号码池里挑选出来的号码,然后点击。

此时浏览器会继续向服务器发送请求,当然发送的号码就是你刚刚修改的号码。

后续就是按照流程上传你本人的身份证照片,以及人脸视频,然后耐心等待认证成功的短信提醒。

总结:

“自定义”号码主要是从号码池中选择你喜欢的号码,并不是真正的自定义。本文主要是提供一个思路,让你能够在短时间内获取号码池的所有号码,从而达到”自定义“的目的,所以本文中的关键信息都已经被隐去。另外阅读本文需要少许的编程知识,希望通过本文能够给你带来不一样的体验。

最后感谢占用您宝贵的时间来阅读本文,如有问题还请留言,我将知无不言。