Browse Source

fix: kms check error in php safe mode

master
Dnomd343 3 years ago
parent
commit
a59939b3f3
  1. 22
      backend/kms-check.php

22
backend/kms-check.php

@ -43,23 +43,19 @@ function checkKms($config) { // 检测KMS服务器是否可用
if ($site !== null) { if ($site !== null) {
$cmd .= ' -w ' . $site; // 加入site参数 $cmd .= ' -w ' . $site; // 加入site参数
} }
$fileName = md5(rand()) . '.txt'; // 生成随机文件名 $cmd .= ' -G temp';
$cmd .= ' -G ' . $tempPath . $fileName; $raw = shell_exec($cmd); // 执行vlmcs测试
shell_exec($cmd); // 执行vlmcs测试 preg_match_all('/Sending activation request \(KMS V6\)/', $raw, $match);
$raw = shell_exec('ls ' . $tempPath); if (count($match[0]) == 6) { // KMS服务器连接成功
preg_match('/' . $fileName . '/', $raw, $match); // 判断随机文件是否存在
header('Content-Type: application/json; charset=utf-8');
if (!count($match)) { // 随机文件不存在 -> KMS连接错误
return array(
'status' => 'error',
'message' => 'connect fail'
);
} else { // 随机文件存在 -> KMS测试成功
shell_exec('rm -f ' . $tempPath . $fileName); // 删除随机文件
return array( return array(
'status' => 'ok', 'status' => 'ok',
'message' => 'success' 'message' => 'success'
); );
} else { // KMS服务器连接异常
return array(
'status' => 'error',
'message' => 'connect fail'
);
} }
} }

Loading…
Cancel
Save