mirror of https://github.com/dnomd343/kms-server
				
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							60 lines
						
					
					
						
							1.7 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							60 lines
						
					
					
						
							1.7 KiB
						
					
					
				
								<?php
							 | 
						|
								
							 | 
						|
								function checkKms($config) { // 检测KMS服务器是否可用
							 | 
						|
								    if (isset($config['host'])) {
							 | 
						|
								        $host = $config['host'];
							 | 
						|
								    } else { // host参数必选
							 | 
						|
								        return array(
							 | 
						|
								            'status' => 'error',
							 | 
						|
								            'message' => 'host param not exist'
							 | 
						|
								        );
							 | 
						|
								    }
							 | 
						|
								    if (isset($config['port'])) {
							 | 
						|
								        $port = $config['port'];
							 | 
						|
								    } else {
							 | 
						|
								        $port = 1688; // 默认KMS端口
							 | 
						|
								    }
							 | 
						|
								    if (isset($config['site']) && $config['site'] !== '') {
							 | 
						|
								        $site = $config['site'];
							 | 
						|
								    } else {
							 | 
						|
								        $site = null; // site参数可选
							 | 
						|
								    }
							 | 
						|
								    $cmd = 'vlmcs '; // 生成vlmcs测试命令
							 | 
						|
								    if (isDomain($host) || isIPv4($host)) {
							 | 
						|
								        $cmd .= $host;
							 | 
						|
								    } else if (isIPv6($host)) {
							 | 
						|
								        $cmd .= '[' . $host . ']'; // IPv6地址需用中括号包围
							 | 
						|
								    } else {
							 | 
						|
								        return array( // host内容不是 IPv4/IPv6/Domain
							 | 
						|
								            'status' => 'error',
							 | 
						|
								            'message' => 'illegal host'
							 | 
						|
								        );
							 | 
						|
								    }
							 | 
						|
								    if ($port > 65535 || $port < 0) { // 端口不存在
							 | 
						|
								        return array(
							 | 
						|
								            'status' => 'error',
							 | 
						|
								            'message' => 'illegal port'
							 | 
						|
								        );
							 | 
						|
								    } else {
							 | 
						|
								        $cmd .= ':' . $port; // 命令中加入端口信息
							 | 
						|
								    }
							 | 
						|
								    if ($site !== null) {
							 | 
						|
								        $cmd .= ' -w ' . $site; // 加入site参数
							 | 
						|
								    }
							 | 
						|
								    $cmd .= ' -G temp';
							 | 
						|
								    $raw = shell_exec($cmd); // 执行vlmcs测试
							 | 
						|
								    preg_match_all('/Sending activation request \(KMS V6\)/', $raw, $match);
							 | 
						|
								    if (count($match[0]) == 6) { // KMS服务器连接成功
							 | 
						|
								        return array(
							 | 
						|
								            'status' => 'ok',
							 | 
						|
								            'message' => 'success'
							 | 
						|
								        );
							 | 
						|
								    } else { // KMS服务器连接异常
							 | 
						|
								        return array(
							 | 
						|
								            'status' => 'error',
							 | 
						|
								            'message' => 'connect fail'
							 | 
						|
								        );
							 | 
						|
								    }
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								?>
							 | 
						|
								
							 |