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

如何开发Discord机器人检测Discord令牌与Bot密钥并自动删消息?

Discord令牌/Bot令牌自动检测与消息删除实现方案

核心实现逻辑

通过监听Discord机器人的消息事件,用正则表达式匹配各类敏感令牌的特征,一旦命中立即删除对应消息。

各类令牌的检测规则与正则表达式

1. Bot令牌检测

结合你给出的规则,再匹配Discord Bot令牌的通用结构(格式为[A-Za-z0-9]{24}\.[A-Za-z0-9]{6}\.[A-Za-z0-9-_]{27}),可以生成精准的匹配正则:

  • 匹配逻辑:以OTc开头、包含两个句点、包含数字,同时符合Bot令牌的长度结构
  • 正则表达式(精准匹配):
^OTc[A-Za-z0-9]{21}\.[A-Za-z0-9]{6}\.[A-Za-z0-9-_]{27}$
  • 宽松匹配(兼容令牌前后带空格/符号的场景):
\bOTc[A-Za-z0-9]{21}\.[A-Za-z0-9]{6}\.[A-Za-z0-9-_]{27}\b

2. 用户Discord令牌检测

用户令牌有两种常见格式,对应的正则如下:

\b(?:mfa\.[A-Za-z0-9-_]{84}|[A-Za-z0-9]{24}\.[A-Za-z0-9]{6}\.[A-Za-z0-9-_]{27})\b

3. Bot密钥检测

Discord Bot的客户端密钥是32位随机字母数字组合,正则匹配:

\b[A-Za-z0-9]{32}\b

代码示例(基于discord.py)

import discord
import re
from discord.ext import commands

# 开启必要的权限
intents = discord.Intents.default()
intents.message_content = True

bot = commands.Bot(command_prefix="!", intents=intents)

# 汇总所有检测规则
TOKEN_PATTERNS = [
    r'\bOTc[A-Za-z0-9]{21}\.[A-Za-z0-9]{6}\.[A-Za-z0-9-_]{27}\b',
    r'\b(?:mfa\.[A-Za-z0-9-_]{84}|[A-Za-z0-9]{24}\.[A-Za-z0-9]{6}\.[A-Za-z0-9-_]{27})\b',
    r'\b[A-Za-z0-9]{32}\b'
]

@bot.event
async def on_message(message):
    # 忽略机器人自身消息,避免循环
    if message.author.bot:
        return
    
    # 扫描消息内容
    for pattern in TOKEN_PATTERNS:
        if re.search(pattern, message.content):
            await message.delete()
            # 可选:给发送者发送提醒
            await message.author.send("禁止发送Discord令牌或密钥,此类信息会导致账号/机器人被盗!")
            break
    
    await bot.process_commands(message)

# 替换为你的Bot令牌
bot.run("YOUR_BOT_TOKEN")

关键注意事项

  • 必须在Discord开发者后台开启机器人的message_content权限,否则无法读取消息内容
  • 可根据实际场景调整正则的宽松度,比如允许令牌前后存在特殊符号
  • 建议添加提醒功能,避免用户对消息被删除产生误解
  • 定期检查Discord令牌格式的更新,及时调整正则规则

内容的提问来源于stack exchange,提问作者npxr c

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 23:55:20