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

Python新手求助:基于py-ts3的TeamSpeak3管理员权限检测脚本问题

解决TeamSpeak3管理员权限检测的问题

嘿,作为Python新手碰到这个问题太正常了!我仔细看了你的代码片段,发现几个关键的小疏漏,咱们一步步把它搞定:

1. 先补上核心的服务器连接步骤

你漏掉了最关键的TS3服务器连接与登录环节——没有建立有效连接的话,所有API调用都会失效。先把这部分补上:

import time
import ts3

def admincheck(nickname, admin_sgid):
    # 替换成你的TS3服务器信息:IP、查询端口(默认10011)
    with ts3.query.TS3Connection("你的TS3服务器IP", 10011) as ts3conn:
        # 登录服务器管理员账号,替换成你的账号密码
        ts3conn.login(client_login_name="serveradmin", client_login_password="你的管理员密码")
        # 选择要检测的虚拟服务器ID(通常是1)
        ts3conn.use(sid=1)
        
        while True:
            # 根据昵称查找用户的数据库ID(包含离线用户)
            client_result = ts3conn.clientdbfind(pattern=nickname)
            # 获取目标管理员组的所有成员列表
            group_members = ts3conn.servergroupclientlist(sgid=admin_sgid)
            
            # 提取管理员组里所有用户的数据库ID,方便后续对比
            admin_client_ids = [member["cldbid"] for member in group_members]
            
            # 遍历查询到的用户,判断是否在管理员组内
            for client in client_result:
                client_db_id = client["cldbid"]
                print(f"客户端数据库ID: {client_db_id}")
                if client_db_id in admin_client_ids:
                    print(f"用户 {nickname} 拥有管理员权限!")
                else:
                    print(f"用户 {nickname} 没有管理员权限。")
            
            # 每隔10秒检测一次,可根据需求调整间隔
            time.sleep(10)

# 调用函数:替换成目标昵称和管理员组的SGID(比如默认服务器管理员组SGID是6)
admincheck("你的TS3昵称", 6)

2. 关键细节说明

  • 变量拼写修正:你代码里的clie...是拼写错误,正确应该用client["cldbid"]获取用户的数据库ID。
  • 权限判断逻辑:先把管理员组的所有成员ID提取成列表,再对比目标用户的ID,这样判断更高效准确。
  • 连接上下文管理器:用with语句管理TS3连接,能自动处理连接关闭,避免资源泄漏。

3. 常见坑点排查

  • 如果出现连接失败:检查服务器IP、查询端口(是10011不是语音端口9987)、管理员账号密码是否正确。
  • 如果找不到用户:确保昵称完全匹配,或者改用clientfind方法查找在线用户(clientdbfind会查所有历史用户)。
  • SGID错误:可以在TS3客户端的「服务器组」设置里查看管理员组的ID,别填错了。

要是运行时还有报错或者逻辑问题,随时补充具体信息,咱们再调!

内容的提问来源于stack exchange,提问作者Roel Huizing

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:32:25