技术向100让你收到telegram的短信验证码

如果你身处中国,并且曾经设法注册了一个 Telegram 账号的话,你大概已经知道了一个遗憾的事实:中国运营商屏蔽了 Telegram 的短信验证码。这意味着,如果你仅有一台设备登录的话,一旦退出登录,那么将无法再次登录 Telegram ——直到你离开中国大陆的移动信号服务区。

稳健tg号

要解决这个烦人的问题,我们先要搞清楚,运营商是怎么屏蔽短信的?在此之前,还需要搞清楚,一条国际短信是如何送到你的手机上的?

问题分析

现代移动通讯的技术基础是GSM(Global System for Mobile Communications),又称全球通讯系统,在中国俗称为2G网络。

2G网络可以为用户提供基础的打电话,发短信功能,而上网速度则非常缓慢,只有15-20K/s。通俗地说,假设一个国外的用户向国内的用户发送了一条短信,这条短信将会通过电缆或无线电基站等各种方式抵达国内的某处机房,在这里进行关键词检测,如果没问题,那么机房会通过基站把短信发给最终用户。

换SIM卡的方法是基本无效的,因为无论是国内的SIM卡还是国外的SIM卡,最终都得经过机房的检测,区别只是运营商不同而已。

我们需要找到一种真正的解决方案。

准备工作

在开始之前,你需要…..

一个 「至少已经登陆在一台设备上」 的 Telegram 账号

Python运行环境,推荐3.10+

学习一些基本的信息知识,例如Linux命令行,Python pip等等(本文非小白向)

Step 1. 申请一个 Telegram 开发者 API ID

前往 my.telegram.org ,在登陆框里输入你的手机号(即使收不到验证码),检查你的 Telegram 服务通知,复制验证码填到浏览器里并点击下一步。

登录后,你会看到两个功能,一个是销户,一个是申请API ID。

小火箭

点击 “API delevopment tools”

选择“API development tools”,接着网页会让你填写一些基本信息,可以随便填。

一切结束后,你会看到API ID和API Hash

小火箭

这是信息页面

注意,你的API Hash和API ID必须严格保密,否则别人可以冒用你的身份来写第三方 Telegram 客户端

Step 2. 配置Python环境

Python如何安装这种问题我就不赘述了,网上教程一大把

接下来的代码要用到telethon,安装telethon需要在命令行执行:

pip install telethon

Step 3. 获取一个 Telegram Session

Session 意为“会话”,你每一次登录 Telegram,都会创建一个新Session

我们的目的是在新设备上重新登陆一次 Telegram,拿到一个新的Session字符串。

你可以使用这个链接 (记得一开始选Telethon):Link

小火箭

记得输入 t

获取Session相当于登录 Telegram,因此你需要输入自己账户的手机号,然后再次在 Telegram 服务通知里查阅验证码。

如果你开了二步验证,你还需要额外输入你的二步验证密码。

我不保证这个链接是安全的,但是我本人通过这个链接获取的Session,至今无事。如果你实在担心安全性,可以把脚本下载到本地运行。

请将你获取的Session字符串严格保密,任何人拿到你的Session都可以直接获取你 Telegram 账号的完整访问权限。

Step 4. 写代码

接下来,理论上你就要开始写Python脚本了,但是你不用写,这里已经帮你准备好了模板:

from telethon import TelegramClient, eventsimport loggingfrom telethon.sessions import StringSessionfrom telethon.tl.types import InputMediaPhoto,InputMediaPhotoExternallogging.basicConfig(format='[%(levelname) 5s/%(asctime)s] %(name)s: %(message)s', level=logging.WARNING)APP_ID = <你的APP ID>API_HASH = <你的APP HASH>SESSION = <你的SESSION>client = TelegramClient(StringSession(SESSION), APP_ID, API_HASH)#client = TelegramClient(StringSession(SESSION), APP_ID, API_HASH,proxy=("socks5", '127.0.0.1', 10808))#如果你需要使用代理,那么请去掉上面那一行的注释,并注释掉上上行。代理配置请自行修改,本文不再赘述。async def main(): entity = await client.get_entity(777000) async for message in client.iter_messages(entity,1): print(message.raw_text)with client: client.loop.run_until_complete(main())

将上述脚本的对应内容换成你的API ID, API HASH 和 SESSION,别忘了给后两个加上双引号。下面是一个伪示例:

APP_ID = 12345678API_HASH = "d84caca3caca4835abece79d4d16c57d"SESSION = "XXXXXXXXXXXXXXXXX"

Step 5. 运行脚本

运行你的脚本,脚本应该会输出你 Telegram 服务通知的最后一条消息。

你可以对比一下输出的结果和 Telegram 服务消息,看看是否匹配。脚本的目的是通过一个额外的Session获取 Telegram 服务验证码,这样可以绕过SMS验证。

尾声: 拓展与提示

Session有有效期,最长是一年。

如果你想要保险一些的措施,可以租赁一台云服务器,然后利用定时任务来循环执行脚本。

每一次执行都会刷新这个Session的上线时间,这样你的Session只要不手动在 设置->隐私->设备 里注销,将会一直保持可用。

更高级的玩法是把脚本配合PHP和服务器使用,这样你就可以在没有任何其他设备(电脑)的情况下,通过浏览器快速地随时随地查阅验证码了。

下次如果你不小心手滑退出了 Telegram 账号,别再慌了!

版权声明:
作者:小火箭shadowrocket
链接:https://www.shadowrocket888.org/643.html
来源:小火箭官网
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>