You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为正常运行的Sms类代码添加Tor会话连接的技术问询

为Sms类添加Tor网络访问会话实现

首先,你需要先安装支持socks代理的requests扩展,因为Tor默认使用socks5代理,执行下面的命令:

pip install requests[socks]

接下来我帮你补全Tor会话的实现,并且整合到你的Sms类里,完整代码如下:

import requests

class Sms:
    def __init__(self, api_key):
        self.key = api_key
        self.url = 'http://sms.com'
        # 初始化Tor会话,让整个实例复用同一个会话,提升请求效率
        self.tor_session = self.get_tor_session()

    def get_tor_session(self):
        session = requests.session()
        # Tor默认使用9050端口作为socks代理(如果你的Tor配置了其他端口,比如Tor Browser默认的9150,记得对应修改)
        session.proxies = {
            'http': 'socks5://127.0.0.1:9050',
            'https': 'socks5://127.0.0.1:9050'
        }
        # 可选:验证Tor连接是否成功,通过httpbin获取当前IP,确认是Tor节点IP
        try:
            response = session.get('http://httpbin.org/ip')
            print(f"当前Tor节点IP: {response.json()['origin']}")
        except Exception as e:
            print(f"Tor连接验证失败: {str(e)}")
        return session

    def request(self, action):
        params = {**{'api_key': self.key}, **action.data}
        # 使用Tor会话发起请求,替代原来直接调用requests.get的方式
        response = self.tor_session.get(self.url, params=params)
        return response.text

代码细节说明:

  • 会话复用:在__init__方法中提前创建Tor会话,避免每次请求都重新建立连接,提升请求效率
  • 代理配置:为会话设置http和https的socks5代理,指向Tor默认的本地监听端口,确保所有请求走Tor网络
  • 连接验证:在会话初始化时添加了可选的IP校验逻辑,方便你快速确认Tor是否正常工作
  • 请求改造:把原request方法中的requests.get替换为Tor会话的get方法,让所有短信请求都通过Tor发送

注意:使用前要确保你的Tor服务已经正常启动,并且监听端口和代码中配置的一致哦~

内容的提问来源于stack exchange,提问作者Dmitrij Holkin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:31:28