From e1237b658da35e4d305f76ba717fb3c0b217097e Mon Sep 17 00:00:00 2001 From: Dnomd343 Date: Thu, 12 Aug 2021 15:48:31 +0800 Subject: [PATCH] fix: add china icp tld list --- db/icpTlds.db | Bin 0 -> 20480 bytes functions/ExtractDomain.php | 21 +++++++++++++++++++++ models/icpQuery.php | 4 ++-- models/punycode.php | 4 +++- 4 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 db/icpTlds.db diff --git a/db/icpTlds.db b/db/icpTlds.db new file mode 100644 index 0000000000000000000000000000000000000000..2b5682d5b6e39e5172483b71ac40c27c6bd8c7a8 GIT binary patch literal 20480 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 A3jhEB literal 0 HcmV?d00001 diff --git a/functions/ExtractDomain.php b/functions/ExtractDomain.php index 69c1d7d..1c70a7c 100644 --- a/functions/ExtractDomain.php +++ b/functions/ExtractDomain.php @@ -6,6 +6,12 @@ class tldDB extends SQLite3 { } } +class icpDB extends SQLite3 { + function __construct() { + $this->open('./db/icpTlds.db'); // 顶级域名数据库 + } +} + class extractDomain { private function getAllTlds() { // 获取所有顶级域 含次级域 $db = new tldDB; @@ -13,6 +19,21 @@ class extractDomain { while ($row = $res->fetchArray(SQLITE3_ASSOC)) { $tlds[] = $row['tld']; } + $tlds = array_merge($tlds, $this->getIcpTlds()); + $tlds = array_unique($tlds); + foreach ($tlds as $tld) { + echo $tld . PHP_EOL; + } + return $tlds; // Unicode字符使用Punycode编码 + } + + private function getIcpTlds() { // 获取所有可ICP备案的顶级域 + $db = new icpDB; + $punycode = new Punycode(); + $res = $db->query('SELECT tld FROM `tlds`;'); + while ($row = $res->fetchArray(SQLITE3_ASSOC)) { + $tlds[] = $punycode->encode($row['tld']); // 转为Punycode编码 + } return $tlds; // Unicode字符使用Punycode编码 } diff --git a/models/icpQuery.php b/models/icpQuery.php index 4e478a0..87b5c02 100644 --- a/models/icpQuery.php +++ b/models/icpQuery.php @@ -98,10 +98,10 @@ class icpQueryEntry { } $msg = '`' . $domain . '`' . PHP_EOL; $msg .= '*类型:*' . $info['CompanyType'] . PHP_EOL; - if ($info['Owner'] != '') { // 负责人不为空 + if ($info['Owner'] != '') { // 负责人为空不显示 $msg .= '*负责人:*' . $info['Owner'] . PHP_EOL; } - if ($info['Owner'] != $info['CompanyName']) { // 名称与负责人不重复 + if ($info['Owner'] != $info['CompanyName']) { // 名称与负责人重复时不显示 $msg .= '*名称:*' . $info['CompanyName'] . PHP_EOL; } $msg .= '*主页:*'; diff --git a/models/punycode.php b/models/punycode.php index c5eb65f..d280cf9 100644 --- a/models/punycode.php +++ b/models/punycode.php @@ -41,7 +41,9 @@ class punycodeEntry { } } if (isset($errMsg)) { // 存在警告 - $msg .= '*Warning:* ' . $errMsg; + if (substr($rawParam, 0, 1) !== '.' && substr($rawParam, -1) !== '.') { // 首尾不为. + $msg .= '*Warning:* ' . $errMsg; + } } tgApi::sendMessage(array( 'parse_mode' => 'Markdown',