直接发送脚本

\<?php
/\*\*
 \* Discuz! 批量随机【中文昵称】注册脚本 (升级版)
 \*
 \* 功能:
 \* - 修复了原脚本用户名过长的问题。
 \* - 自动生成指定数量的随机【中文】用户,使其看起来像真人。
 \* - 用户名为 2-3 个字的随机中文名。
 \* - 密码为12位随机高强度密码。
 \* - 邮箱为 "user\_\[随机串\]@example.com" 格式,兼容性好。
 \*
 \* 使用方法:
 \* 1. (可选) 修改下面的 $user\_count 变量来改变要创建的用户数量。
 \* 2. 将此文件上传到您的 Discuz! 论坛的根目录。
 \* 3. 通过浏览器访问 http://你的论坛域名/auto\_register\_cn.php 来执行。
 \* 4. 【重要】执行完毕后,立即从服务器上删除此文件!
 \*/

// ======================= 配置区域 START =======================

// 您希望创建的随机用户数量
$user\_count = 200;

// ======================= 配置区域 END =======================


// --- 以下代码无需修改 ---

// 屏蔽错误信息,使输出更整洁
@error\_reporting(0);
// 设置脚本执行时间无限制,防止用户过多时超时
@set\_time\_limit(0);
// 设置时区,避免时间相关的警告
date\_default\_timezone\_set('Asia/Shanghai');

/\*\*
 \* 生成一个指定长度的随机字符串
 \* @param int $length 字符串长度
 \* @param string $charset 使用的字符集
 \* @return string 随机字符串
 \*/
function generateRandomString($length, $charset) {
    $str = '';
    $charset\_length = strlen($charset);
    for ($i = 0; $i \< $length; $i++) {
        $str .= $charset\[mt\_rand(0, $charset\_length - 1)\];
    }
    return $str;
}

// 检查 Discuz! 核心文件是否存在
if (!file\_exists('./config/config\_ucenter.php')) {
    die('错误: 未能在当前目录下找到 UCenter 配置文件(config/config\_ucenter.php)。\<br>请确保您已将此脚本上传到了 Discuz! 论坛的【根目录】。');
}

// 引入 UCenter 客户端文件
require\_once './config/config\_ucenter.php';
require\_once './uc\_client/client.php';

// --- 中文名生成资源 ---
// 常见姓氏
$surnames = \['赵', '钱', '孙', '李', '周', '吴', '郑', '王', '冯', '陈', '褚', '卫', '蒋', '沈', '韩', '杨', '朱', '秦', '尤', '许', '何', '吕', '施', '张', '孔', '曹', '严', '华', '金', '魏', '陶', '姜', '戚', '谢', '邹', '喻', '柏', '水', '窦', '章', '云', '苏', '潘', '葛', '奚', '范', '彭', '郎', '鲁', '韦', '昌', '马', '苗', '凤', '花', '方', '俞', '任', '袁', '柳', '酆', '鲍', '史', '唐', '费', '廉', '岑', '薛', '雷', '贺', '倪', '汤', '滕', '殷', '罗', '毕', '郝', '邬', '安', '常', '乐', '于', '时', '傅', '皮', '卞', '齐', '康', '伍', '余', '元', '卜', '顾', '孟', '平', '黄', '和', '穆', '萧', '尹', '姚', '邵', '湛', '汪', '祁', '毛', '禹', '狄', '米', '贝', '明', '臧', '计', '伏', '成', '戴', '谈', '宋', '茅', '庞', '熊', '纪', '舒', '屈', '项', '祝', '董', '梁'\];
// 常用名
$given\_names\_chars = \['伟', '芳', '娜', '敏', '静', '秀', '丽', '强', '磊', '军', '洋', '勇', '艳', '杰', '娟', '涛', '明', '超', '秀英', '敏', '平', '刚', '桂英', '英', '玲', '玉', '文', '建', '华', '建华', '国', '志', '云', '峰', '新', '宇', '浩', '凯', '瑞', '林', '雪', '梅', '兰', '珍', '丹', '霞', '月', '萍', '荣', '志强', '建军', '国强', '和平', '德', '宇', '轩', '然', '诺', '曦', '晨', '萌', '琪', '雅', '涵', '萱', '怡', '琳'\];


// 开始生成随机用户数据
$users = \[\];
$password\_charset = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&\*()';
$email\_charset = 'abcdefghijklmnopqrstuvwxyz0123456789';

for ($i = 0; $i \< $user\_count; $i++) {
    // 1. 生成随机中文名
    $surname = $surnames\[array\_rand($surnames)\];
    $given\_name = $given\_names\_chars\[array\_rand($given\_names\_chars)\];
    $username = $surname . $given\_name;

    // 2. 生成高强度密码
    $password = generateRandomString(12, $password\_charset);

    // 3. 生成随机邮箱
    $email\_local\_part = 'user\_' . generateRandomString(8, $email\_charset);
    $email = $email\_local\_part . '@qq.com';
    
    $users\[\] = \[
        'username' => $username,
        'password' => $password,
        'email' => $email,
    \];
}

// 开始输出 HTML
header('Content-Type: text/html; charset=utf-8');
echo '\<html>\<head>\<title>Discuz! 批量随机【中文昵称】注册脚本\</title>';
echo '\<style>body { font-family: "Microsoft Yahei", "WenQuanYi Micro Hei", sans-serif; line-height: 1.8; } .ok { color: green; } .error { color: red; } .warn { color: #D2691E; font-weight: bold; } .info { color: blue; }\</style>';
echo '\</head>\<body>';
echo '\<h1>Discuz! 批量随机【中文昵称】注册脚本 (升级版)\</h1>';
echo '\<p class="info">准备开始自动生成并注册 ' . $user\_count . ' 个中文用户...\</p>\<hr>';

if (empty($users)) {
    echo '\<p class="warn">用户列表为空,没有执行任何操作。\</p>';
} else {
    // 循环处理用户数据
    foreach ($users as $user) {
        $username = $user\['username'\];
        $password = $user\['password'\];
        $email = $user\['email'\];

        // 调用 UCenter 核心注册函数
        $uid = uc\_user\_register($username, $password, $email);

        if ($uid > 0) {
            // 输出成功信息,并显示密码,方便测试登录
            echo "\<p>\<span class='ok'>\[成功\]\</span> 用户 '\<b>{$username}\</b>' 注册成功!UID: {$uid} | 密码: \<b>{$password}\</b>\</p>";
        } else {
            // 处理错误码
            $error\_msg = '未知错误';
            switch ($uid) {
                case -1: $error\_msg = '用户名不合法 (长度或格式问题,请检查UCenter后台设置)'; break;
                case -2: $error\_msg = '用户名包含不允许注册的敏感词'; break;
                case -3: $error\_msg = '用户名已经存在 (随机生成的名字重复,正常现象)'; break;
                case -4: $error\_msg = 'Email 格式有误'; break;
                case -5: $error\_msg = 'Email 不允许注册 (可能在黑名单中)'; break;
                case -6: $error\_msg = '该 Email 已经被注册'; break;
            }
            echo "\<p>\<span class='error'>\[失败\]\</span> 用户 '\<b>{$username}\</b>' 注册失败。原因: {$error\_msg} (错误码: {$uid})\</p>";
        }
        
        // 刷新缓冲区,实时输出结果
        flush();
        ob\_flush();
        
        // 暂停 0.05 秒,减轻服务器压力
        usleep(50000);
    }
}

echo '\<hr>';
echo '\<h2>\<span class="info">所有任务执行完毕!\</span>\</h2>';
echo '\<h3>\<span class="warn">!!!安全警告!!!\</span>\</h3>';
echo '\<p class="warn" style="font-size:18px;">为了您的论坛安全,请立即通过 FTP 或服务器文件管理器,从服务器上删除本脚本文件 (auto\_register\_cn.php)!\</p>';
echo '\</body>\</html>';

?>

效果示意图
md77f4t5.png

最后修改:2025 年 07 月 17 日
如果觉得我的文章对你有用,请随意赞赏