isHost($temp[0])) { $host = $server; $port = 1688; } else { return array( 'status' => 'error', 'message' => 'Illegal host' ); } } else if (count($temp) === 2) { // 带一个:的请求 if ($this->isHost($temp[0])) { $host = $temp[0]; } else { return array( 'status' => 'error', 'message' => 'Illegal host' ); } $port = $temp[1]; if ($port < 0 || $port > 65535) { return array( 'status' => 'error', 'message' => 'Illegal port' ); } } else { // 带多个:的请求 return array( 'status' => 'error', 'message' => 'Illegal request' ); } return array( 'status' => 'ok', 'host' => $host, 'port' => $port ); } public function checkKms($host, $port) { $server = $host . ':' . $port; $url = $this->api . 'host=' . $host . '&port=' . $port; $content = json_decode(file_get_contents($url), true); // 请求上游接口 switch ($content['status']) { case 'ok': return array( 'parse_mode' => 'Markdown', 'text' => '`' . $server . '`' . PHP_EOL . 'KMS服务*正常运行*' ); case 'error': return array( 'parse_mode' => 'Markdown', 'text' => '`' . $server . '`' . PHP_EOL . 'KMS服务*无法使用*' ); default: return array( 'text' => 'Server error' ); } } } function kmsCheck($rawParam) { // KMS测试入口 global $chatId; if ($rawParam == '' || $rawParam === 'help') { // 显示使用说明 sendMessage($chatId, array( 'parse_mode' => 'Markdown', 'text' => '*Usage:* `/kms IP/Domain[:port]`' )); return; } $check = (new kmsCheck)->check($rawParam); if ($check['status'] === 'error') { // 输入格式有误 sendMessage($chatId, array( 'text' => $check['message'] )); return; } $message = json_decode(sendMessage($chatId, array( 'parse_mode' => 'Markdown', 'text' => '`' . $rawParam . '`' . PHP_EOL . 'KMS服务检测中...' )), true); sendPayload(array( 'method' => 'editMessageText', 'chat_id' => $chatId, 'message_id' => $message['result']['message_id'] ) + (new kmsCheck)->checkKms($check['host'], $check['port'])); // 发起查询并返回结果 } ?>