手机号查QQ号3分钟快速指南:phone2qq 三步跑通完整教程
【免费下载链接】phone2qq项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq
帮家人找回QQ号,他只记得绑定的手机号,QQ号死活想不起来。用开源小工具 phone2qq 做手机号查QQ号:把号码填进一行代码,运行一下,QQ号直接打在终端里,几分钟就能跑通。
忘记QQ号怎么办:这4个时刻你会用到它
手机号查QQ号这事,来得比想象中频繁,对号入座看看:
- 团队拉工作群,手里只有同事的手机号,需要确认对方QQ
- 换绑手机号前,想先确认这个号码之前关联过哪个QQ
- 帮长辈找回QQ号,对方只记得绑定用的手机号
- 盘点自己名下的账号资产,梳理"手机号→QQ号"的对应关系
前提只有一个:目标账号开过手机号登录QQ。
项目速览:两个文件,零依赖
先看家底:phone2qq 的全部家当只有两个文件。
| 文件 | 职责 |
|---|---|
qq.py | 主程序:拼报文、发请求、拆结果,核心逻辑都在QQLogin类里 |
tea.py | TEA 加解密:约 50 行实现encrypt/decrypt两个函数 |
先给 TEA 加密一个白话解释:它是一种把明文搅散成十六进制乱码的轻量算法,相当于给数据戴上面具——戴面具和摘面具用的是同一把钥匙。
零第三方依赖,环境里有 Python 3 就能跑,装包环节直接省略。
手机号反查QQ号:第一次查询的3个步骤
🚀 第一次上手,照着走完 3 步就行。
第 1 步:拿到代码
git clone https://gitcode.com/gh_mirrors/ph/phone2qq cd phone2qq第 2 步:改手机号
打开qq.py,在QQLogin类初始化处把号码换成你要查的:
self.num = '13800138000' # 换成你的11位手机号第 3 步:运行
python3 qq.py终端打印一串数字,就是关联的 QQ 号;打印False,表示查不到对应关系。不想改文件,也可以直接这样调用:
from qq import QQLogin print(QQLogin().getQQ('13800138000'))跑通之后再看原理:一副面具,两段取件
结果跑出来了,花两分钟搞懂它为什么能跑通。
TEA 加密 = 一副只有钥匙能摘掉的面具。手机号不会明文上路,tea.encrypt先把它搅成十六进制乱码再发出;服务器回包同样是一副面具,程序用同一把钥匙调tea.decrypt摘下来。tea.py里是 16 轮迭代、每 8 字节一组的 QQ 通讯变种,够把数据搅浑。
两次登录 = 去快递柜取件。UDP 报文是不先"拨号"就直接发过去的网络数据,像把信扔过街、对方伸手接住(qq.py用socket.SOCK_DGRAM直连发收)。取件分两回:
- 0825 登录(
login0825):手机号戴上面具发给服务器,换回一张"取件码"——会话令牌token0825,顺带拿到serverTime、serverIP。 - 0826 登录(
login0826):亮出取件码、附上本地算好的密码摘要;服务器核对无误后回包,程序按偏移量取出十六进制 QQ 号,转成十进制返回。
所以 0825/0826 就是"拿码、取货"两步,全程肉眼只见十六进制流水。
关键参数速查表:失效排查多数只需改 address
出问题时改哪里?先认识qq.py里QQLogin初始化摆出的这几个配置:
| 参数 | 默认值 | 含义 |
|---|---|---|
num | '10000000000' | 待查询的 11 位手机号 |
address | ('183.60.56.100', 8000) | 服务器 IP 与 UDP 端口,失效时多数只需改它 |
fixedData | '0000044b0000000100001509' | 协议固定填充字段,一般不动 |
hdKey | '0251ca4aab66e80ae4d279921ace3c3dfee23788151f45368d' | 设备标识密钥,一般不动 |
token0825/serverTime/serverIP | 空字符串 | 0825 登录后自动回填,不用手填 |
一句话:平时只碰num,查询挂了优先动address。
批量查询:一段 for 循环 + 一条授权红线
逐号查询天然适合批量,qq.py底部注释里就留了现成示例:
for i in range(10000): num = '1360106%04d' % i # 号段拼接,按需修改 qq = login.getQQ(num) if qq: print('%s >> %s' % (num, qq)) # 命中才打印把号段换成你的目标范围即可。⚠️红线只有一条:批量只用于自己名下或已获明确授权的号码。无差别扫号段碰的是别人的隐私,也是法律风险,别碰。
排错指南:返回False的3种排查思路
查不到别慌,对着这张表对号入座:
| 症状 | 可能原因 | 解决办法 |
|---|---|---|
返回False | 号码不是 11 位纯数字 / 账号没开手机号登录 / 本就无绑定 | 核对号码格式与登录开关;确认无绑定时,False就是正常结果 |
| 查出的 QQ 号对不上 | 旧账号换过绑定的手机号,查到的是当前绑定关系 | 以当前绑定为准;可对照login0826里recvData[6:14]与recvData[14:22]两处解析分支确认回包 |
打印0825 error! | 第一步就没拿到有效响应:协议已更新或服务器不可达 | 先确认网络放行 UDP 8000;都正常仍报错,基本可判定工具失效 |
收尾:当应急工具用,别当长期依赖
它到底值不值得留着?一句话:相比官方找回的多步人工验证,phone2qq 胜在快和全自动;代价是它走逆向协议,服务器或协议一变就失效——作者在 README 里也注明"该方法可能已经失效"。
⚠️最后过一遍红线:只查自己或已获授权的号码、不批量扫号、不用于商用。
想再啃深一点,去读tea.py:一个轻量加密算法如何在 50 行内落地,从encrypt到decrypt全摊开,这才是这个项目最值得学的地方。
【免费下载链接】phone2qq项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考