| 
						
						
							
								
							
						
						
					 | 
					@ -12,11 +12,17 @@ class tldQueryEntry { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        $info['admin_contact'] = json_decode(base64_decode($info['admin_contact']), true); | 
					 | 
					 | 
					        $info['admin_contact'] = json_decode(base64_decode($info['admin_contact']), true); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        $info['tech_contact'] = json_decode(base64_decode($info['tech_contact']), true); | 
					 | 
					 | 
					        $info['tech_contact'] = json_decode(base64_decode($info['tech_contact']), true); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        $info['nameserver'] = json_decode(base64_decode($info['nameserver']), true); | 
					 | 
					 | 
					        $info['nameserver'] = json_decode(base64_decode($info['nameserver']), true); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        $info['dnssec'] = json_decode(base64_decode($info['dnssec']), true); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        return $info; | 
					 | 
					 | 
					        return $info; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    private function genMessage($info) { // 生成返回消息 | 
					 | 
					 | 
					    private function genMessage($info) { // 生成返回消息 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        $msg = '`' . $info['tld'] . '` `(` `' . $info['type'] . '` `)`' . PHP_EOL; | 
					 | 
					 | 
					        $msg = '`' . $info['tld'] . '` `(` `' . $info['type']; | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        if ($info['active'] === 'yes') { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            $msg .= '` `)`' . PHP_EOL; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        } else { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            $msg .= ' not active` `)`' . PHP_EOL; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        if (count($info['manager']) !== 0) { | 
					 | 
					 | 
					        if (count($info['manager']) !== 0) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            $msg .= '*Manager*' . PHP_EOL; | 
					 | 
					 | 
					            $msg .= '*Manager*' . PHP_EOL; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            foreach ($info['manager']['name'] as $row) { | 
					 | 
					 | 
					            foreach ($info['manager']['name'] as $row) { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -72,6 +78,59 @@ class tldQueryEntry { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                } | 
					 | 
					 | 
					                } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            } | 
					 | 
					 | 
					            } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        if (count($info['dnssec']) !== 0) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            if ($info['dnssec']['type'] === 1) { // 正常DNSSEC | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                $msg .= '*DNSSEC*' . PHP_EOL; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                foreach ($info['dnssec']['ds'] as $ds) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    $msg .= '  *Tag: ' . $ds['tag'] . '*' . PHP_EOL; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    if (strlen($ds['hash']) === 64) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                        $msg .= '    `' . substr($ds['hash'], 0, 32) . '`' . PHP_EOL; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                        $msg .= '    `' . substr($ds['hash'], -32) . '`' . PHP_EOL; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    } else if (strlen($ds['hash']) === 40){ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                        $msg .= '    `' . substr($ds['hash'], 0, 32) . '`' . PHP_EOL; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                        $msg .= '    `' . substr($ds['hash'], -8) . '`' . PHP_EOL; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    $msg .= '    Algorithm: _' . $ds['algorithm']; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    if ($ds['algorithm'] === '1') { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                        $msg .= ' (RSA/MD5)'; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    } else if ($ds['algorithm'] === '3') { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                        $msg .= ' (DSA/SHA1)'; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    } else if ($ds['algorithm'] === '5') { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                        $msg .= ' (RSA/SHA-1)'; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    } else if ($ds['algorithm'] === '6') { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                        $msg .= ' (DSA-NSEC3-SHA1)'; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    } else if ($ds['algorithm'] === '7') { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                        $msg .= ' (RSASHA1-NSEC3-SHA1)'; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    } else if ($ds['algorithm'] === '8') { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                        $msg .= ' (RSA/SHA-256)'; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    } else if ($ds['algorithm'] === '10') { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                        $msg .= ' (RSA/SHA-512)'; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    } else if ($ds['algorithm'] === '12') { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                        $msg .= ' (GOST R 34.10-2001)'; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    } else if ($ds['algorithm'] === '13') { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                        $msg .= ' (ECDSA Curve P-256 with SHA-256)'; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    } else if ($ds['algorithm'] === '14') { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                        $msg .= ' (ECDSA Curve P-384 with SHA-384)'; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    } else if ($ds['algorithm'] === '15') { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                        $msg .= ' (Ed25519)'; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    } else if ($ds['algorithm'] === '16') { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                        $msg .= ' (Ed448)'; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    $msg .= '_' . PHP_EOL; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    $msg .= '    Digest type: _' . $ds['digest']; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    if ($ds['digest'] === '1') { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                        $msg .= ' (SHA-1)'; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    } else if ($ds['digest'] === '2') { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                        $msg .= ' (SHA-256)'; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    $msg .= '_' . PHP_EOL;                     | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            } else if ($info['dnssec']['type'] === 3) { // 启用DNSSEC 但未部署DS记录 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                $msg .= '*DNSSEC:* signed, but without DS record.' . PHP_EOL; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            } else { // 未启用DNSSEC | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                $msg .= '*DNSSEC:* unsigned' . PHP_EOL; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        if ($info['website'] != '') { | 
					 | 
					 | 
					        if ($info['website'] != '') { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            $msg .= '*Website:* ' . $info['website'] . PHP_EOL; | 
					 | 
					 | 
					            $msg .= '*Website:* ' . $info['website'] . PHP_EOL; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |