直接发送脚本
\<?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>';
?>效果示意图