no message

This commit is contained in:
2025-10-18 14:46:52 +08:00
commit 7a84025b05
387 changed files with 75711 additions and 0 deletions

264
user/cgp.php Normal file
View File

@@ -0,0 +1,264 @@
<?php
include './ip.php';
class cgp {
private $url;
private $method;
private $data = [];
// 设置目标URL或提交方法
public function set($param, $value) {
if ($param == 'to') {
$this->url = $value;
} elseif ($param == 'me') {
$this->method = strtoupper($value);
} else {
throw new Exception("Unknown parameter $param");
}
}
// 添加提交数据
public function add($key, $value) {
$this->data[$key] = $value;
}
// 发起提交请求
public function run() {
$ch = curl_init();
// 根据请求方法设置URL和数据
if ($this->method == 'POST') {
curl_setopt($ch, CURLOPT_URL, $this->url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($this->data));
} elseif ($this->method == 'GET') {
$query = http_build_query($this->data);
curl_setopt($ch, CURLOPT_URL, $this->url . '?' . $query);
} else {
throw new Exception("Invalid method $this->method");
}
// 常规设置
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
// 新增选项以跳过SSL证书和主机名验证
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过对证书的验证
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 跳过对主机名的验证
// 执行请求并捕获响应
$response = curl_exec($ch);
$error = curl_error($ch);
curl_close($ch);
// 返回结果
if ($error) {
$result = ['success' => false, 'error' => $error];
} else {
$result = ['success' => true, 'response' => $response];
}
return json_encode($result);
}
}
// 默认AES密钥
$key = "12454545454434";
// 定义 v_in 函数(加密函数)
function v_in($plaintext) {
global $key; // 使用全局变量
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
$ciphertext = openssl_encrypt($plaintext, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
return base64_encode($iv . $ciphertext); // 传输 IV 与密文
}
// 定义 v_ou 函数(解密函数)
function v_ou($ciphertext) {
global $key; // 使用全局变量
$data = base64_decode($ciphertext);
$ivLength = openssl_cipher_iv_length('aes-256-cbc');
// 提取 IV 和密文
$iv = substr($data, 0, $ivLength);
$ciphertextWithoutIV = substr($data, $ivLength);
// 解密并返回明文
return openssl_decrypt($ciphertextWithoutIV, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
}
function romstr($length = 10) {
// 定义可用字符集合(大写字母和数字)
$characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$charactersLength = strlen($characters);
$randomString = '';
// 随机生成字符串
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
function isValidInteger($value) {
// 检查是否是纯数字并且是整数
if (is_numeric($value) && intval($value) == $value) {
// 检查是否在1到1000之间
if ($value >= 1 && $value <= 1000) {
return true;
}
}
return false;
}
// 生成唯一的10位数字和小写字母组合并写入文件
function c_only_user($filePath = './inuse.txt') {
// 定义一个生成10位数字加小写字母组合的函数
function generateRandomString($length = 10) {
// 可选字符集:小写字母和数字
$characters = 'abcdefghijklmnopqrstuvwxyz0123456789';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
// 检查文件是否存在,不存在则创建一个空文件
if (!file_exists($filePath)) {
file_put_contents($filePath, '');
}
// 获取文件内容,并将每一行内容存入数组中
$usedStrings = file($filePath, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
// 初始化生成的字符串变量
$uniqueString = '';
// 不断生成直到生成一个唯一的字符串
do {
$uniqueString = generateRandomString();
} while (in_array($uniqueString, $usedStrings));
// 将生成的唯一字符串追加到文件中,并换行
file_put_contents($filePath, $uniqueString . PHP_EOL, FILE_APPEND);
// 返回生成的唯一字符串
return $uniqueString;
}
// 生成包含数字和英文字符的随机字符串
function onlystr($length = 10, $file = 'generated_strings.txt') {
// 定义数字和英文字符
$characters = 'abcdefghijklmnopqrstuvwxyz0123456789';
// 将生成过的字符串存储在文件中
$generatedStrings = [];
// 读取文件中的已生成字符串
if (file_exists($file)) {
$generatedStrings = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
}
// 开始生成不重复的字符串
do {
$randomString = '';
for ($i = 0; $i < $length; $i++) {
// 从字符池中随机选择一个字符
$randomString .= $characters[rand(0, strlen($characters) - 1)];
}
} while (in_array($randomString, $generatedStrings)); // 检查是否重复
// 将新生成的字符串追加到文件中
file_put_contents($file, $randomString . PHP_EOL, FILE_APPEND);
return $randomString;
}
function h_t($templatePath, $variables = []) {
// 检查模板文件是否存在
if (!file_exists($templatePath)) {
throw new Exception("模板文件不存在: " . $templatePath);
}
// 获取模板文件内容
$templateContent = file_get_contents($templatePath);
// 替换模板中的变量(例如 {{user}} 替换为 $user 的值)
foreach ($variables as $key => $value) {
// 使用正则表达式匹配 {{variable}} 形式的占位符并替换为对应的值
$templateContent = str_replace("{{\$$key}}", htmlspecialchars($value, ENT_QUOTES), $templateContent);
}
// 返回处理后的内容
return $templateContent;
}
function log_wt($type, $content, $logName) {
// 获取当前时间,格式为 "年 月 日 时:分:秒"
$timestamp = date("Y m d H:i:s");
// 获取客户端 IP 地址
$ipAddress = $_SERVER['REMOTE_ADDR'] ?? 'UNKNOWN';
// 构造日志内容
$logEntry = "[$timestamp] - [$type] - [$ipAddress] - $content\n";
$directory = './me/'.$_SESSION['user']; // 替换为你的目录路径
$items = scandir($directory); // 获取目录下的所有文件和文件夹
$firstDir = null;
foreach ($items as $item) {
if ($item != '.' && $item != '..' && is_dir($directory . '/' . $item)) {
$pass = $item;
break; // 找到第一个目录后退出循环
}
}
// 确保日志目录存在(可以根据需要修改日志存放路径)
$logDirectory = "./me/" . $_SESSION['user'] . "/" . $pass . "/logs";
if (!is_dir($logDirectory)) {
mkdir($logDirectory, 0777, true);
}
// 设置日志文件路径
$logFilePath = "$logDirectory/$logName.log";
$archiveFilePath = "$logDirectory/{$logName}_archive.log";
// 检查日志文件行数,超过 5000 行则归档
if (file_exists($logFilePath)) {
$lineCount = count(file($logFilePath));
if ($lineCount >= 5000) {
// 将内容附加到总日志文件
file_put_contents($archiveFilePath, file_get_contents($logFilePath), FILE_APPEND);
// 清空当前日志文件
file_put_contents($logFilePath, "");
}
}
// 将日志内容追加写入日志文件
file_put_contents($logFilePath, $logEntry, FILE_APPEND);
}