用手机号查QQ号:phone2qq 命令行快速上手
【免费下载链接】phone2qq项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq
换手机后一时想不起自己绑定的 QQ 号,或通讯录里只存着一个手机号、却急着找到对方账号——这种"号码在手、账号难寻"的时刻,总会让人挠头。phone2qq 正是为这类场景而生的命令行小工具:它用 Python 编写,输入一个 11 位手机号,就能尝试反向查出绑定在其上的 QQ 号,全程在终端里完成,不用打开任何网页。
速览卡片:先花十秒了解它的本事
| 项目 | 说明 |
|---|---|
| 核心能力 | 输入手机号,反查绑定的 QQ 号 |
| 上手成本 | 复制粘贴命令即可,无需编程基础 |
| 运行环境 | Python 3.5+,Linux / macOS / Windows 通用 |
| 依赖情况 | 只用 Python 标准库,零第三方依赖 |
| 适用人群 | 找回账号的普通用户、管理多个账号的号主、想研究协议实现的开发者 |
一句话概括:它适合"偶尔查一次"的个人场景,也适合想批量理清绑定关系的进阶用户。需要提醒的是,查询能否命中,取决于对方账号是否开启了"手机号登录",这一点后面会展开讲。
环境准备:把工具下载到本地
工具本体只有两个文件(qq.py 和 tea.py),对环境要求很低。按顺序执行:
python3 --version # 确认版本在 3.5 及以上 git clone https://gitcode.com/gh_mirrors/ph/phone2qq cd phone2qq第一行用于检查 Python 环境,版本不够就先升级;后两行把项目克隆到当前目录并进入。完成后可以用ls看看,目录里应当有 qq.py、tea.py 两个源文件。整个过程不需要安装任何第三方包,因为它只用到了 Python 自带的 socket、hashlib 等标准库。
首次实战:完成一次手机号反查
先跑默认示例,验证环境是否通畅
直接运行主程序:
python3 qq.py程序会按源码里预设的默认手机号发一次查询请求,你大概率会看到一行输出:
FalseFalse不是报错,而是表示"该号码没有查询到绑定的 QQ 号"(默认号段本身没有绑定记录,属于正常结果)。看到这行字,说明环境已经跑通,网络和加密流程都正常。
查询你自己的手机号
工具真正的入口是getQQ()方法,一行命令即可换成任意号码,试试把下面示例中的号码替换成你自己的:
python3 -c "from qq import QQLogin; print(QQLogin().getQQ('13800138000'))"如果该号码的 QQ 开启了"手机号登录",终端就会打印出对应的 QQ 号;如果返回False,多半是号码未开启该功能或接口暂不可用。
phone2qq 手机号查QQ号运行截图
原理速通:一封加密快递的完整旅程
如果觉得上面的操作像变魔术,不妨看看它背后发生了什么。整个查询可以类比成寄一封加密快递,走三步:
- 打包:
tea.py用 TEA 算法把手机号、密钥等数据加密成密文; - 投递:
qq.py通过 UDP 数据包,把密文发往腾讯登录服务器(默认地址 183.60.56.100:8000); - 拆封:收到回包后,工具用同样的密钥解密,再从响应数据里解析出 QQ 号。
为了拿到合法会话,程序还会先走 0825、0826 两轮登录握手(对应login0825与login0826两个方法),相当于快递员先出示证件、再取件。对普通用户来说,理解到"加密、传输、解密"这一层就足够;想深入的同学可以直接读tea.py,代码很简短。
手机号查QQ号工作流程示意图
横向对比:三种找回方式各有什么取舍
| 对比维度 | phone2qq | 官网账号找回 | 客服人工协助 |
|---|---|---|---|
| 平均耗时 | 秒级到 1 分钟 | 5 到 10 分钟 | 10 分钟起步,需排队 |
| 操作步骤 | 一条命令 | 多步表单与验证 | 人工沟通核实 |
| 技术门槛 | 会用终端即可 | 很低 | 无 |
| 隐私程度 | 本地加密处理 | 数据经过网页传输 | 需提供更多身份信息 |
| 稳定性 | 依赖私有协议,可能失效 | 官方渠道,最稳定 | 稳定但效率低 |
不难看出,phone2qq 的卖点是快和轻,代价是稳定性不如官方渠道——毕竟它走的是非官方协议,接口一旦调整就可能失灵。如果你追求"一次就好、秒级出结果",它很合适;如果是重要账号,建议优先走官方流程。
进阶技巧:批量查询与脚本化
技巧一:遍历一个号段
源码注释里就藏着一个批量示例,把下面的片段保存成脚本,就能扫出某个号段里绑定了 QQ 的号码:
# 批量扫号段:找出该号段中绑定了QQ号的手机号 from qq import QQLogin login = QQLogin() for i in range(10000): num = '1360106%04d' % i qq = login.getQQ(num) if qq: print('%s >> %s' % (num, qq))把range和号段前缀改成你需要的范围即可。注意别把循环次数设得过大,避免对服务器造成压力。
技巧二:从文本文件批量查询
把手机号按"一行一个"存进phones.txt,再用一个十几行的脚本逐个查询:
# batch.py:逐行读取手机号并查询 from qq import QQLogin login = QQLogin() for line in open('phones.txt'): phone = line.strip() print('%s >> %s' % (phone, login.getQQ(phone)))保存后执行python3 batch.py,结果会一行行打印出来,方便你另存为记录表。两个技巧组合起来,就能把"账号与手机号绑定关系"梳理成一张清单。
避坑清单:常见问题一次说清
- 查询总是返回 False:原因多为该号码未绑定 QQ,或账号没开启"手机号登录"。解法:先在 QQ 设置里确认手机号登录已开启,再换一个已知绑定过的号码测试。
- 报错
No module named 'tea':原因是在项目目录之外运行了脚本,找不到同目录的tea.py。解法:先cd phone2qq,确保两个源文件在同一目录。 - 命令运行后长时间无响应:原因可能是服务器地址失效或网络受限。解法:更换网络环境重试;仍不行,说明该地址可能已不可用。
- 输出
0825 error!:原因多半是接口协议已更新,老版本报文不再被识别。解法:查看项目是否更新,或接受"工具仅供参考"的现实。 - 用
python而非python3运行报语法错:原因是用到了 Python 2。解法:统一用python3命令。
使用边界与合规提醒
最后说几句实在话。这类查询工具天然带有隐私属性,请务必只在以下范围使用:查询自己的账号、查询已获对方授权的号码。不要用它对陌生号码做地毯式扫描,也不要用于商业或非法用途;批量查询后及时清理本地结果文件,避免手机号与 QQ 的对应关系泄露。另外需要坦诚的是,该项目发布较早,README 也注明接口可能失效,因此更建议把它当作学习 TEA 加密与登录协议的参考,而不是长期依赖的生产工具。任何网络行为都应遵守当地法律法规,理性使用。
写在最后:从一次查询开始
工具的价值在于解决问题,而不是制造问题。phone2qq 用不到两个源文件的体量,演示了"加密打包—网络投递—解密解析"这一完整链路,既有实用场景,也是不错的入门样本。
你可以这样开始下一步:
- 克隆项目,用
python3 qq.py跑通第一次查询; - 把自己的号码代入
getQQ(),体验真实反查; - 通读
tea.py与qq.py,理解 TEA 加密和登录握手。
如果在使用中遇到新问题,或发现了更有趣的用法,欢迎在评论区分享,我会收集大家的反馈继续补充这篇教程。
【免费下载链接】phone2qq项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考