katmore / tld-enum
各种格式下所有ICANN顶级域名的列表
Requires
- php: >=7.2.1
README
各种格式下所有IANA顶级域名的列表。列表可以使用包含的更新工具进行持续更新,该工具从IANA拉取最新数据。
使用
由于列表提供了通用的CSV和JSON格式,因此它们可以在大多数编程环境中轻松使用。此外,为了方便起见,还提供了一些本地编程语言格式。
Node使用
-
使用npm将
tld-enum包添加到您的项目$ npm install tld-enum --save
-
将模块添加到您的源代码
const tldEnum = require('tld-enum');
-
通过使用
tldEnum.tldList数组访问列表const tldEnum = require('tld-enum'); console.log(tldEnum.list); //an array with every IANA TLD
以下示例...
const tldEnum = require('tld-enum'); console.log("There are " + tldEnum.list.length + " IANA TLDs"); let tldCheck; tldCheck = "com"; console.log("Is '" + tldCheck + "' a real TLD?"); if (tldEnum.list.indexOf(tldCheck.toLowerCase()) != -1) { console.log(" yes"); } else { console.log(" no"); } tldCheck = "somethingWeird"; console.log("Is '" + tldCheck + "' a real TLD?"); if (tldEnum.list.indexOf(tldCheck.toLowerCase()) != -1) { console.log(" yes"); } else { console.log(" no"); }
应产生以下输出...
There are 1577 IANA TLDs Is 'com' a real TLD? yes Is 'somethingWeird' a real TLD? no
更多Node示例
- js-demo.js 使用JavaScript中的简单TLD数组进行演示。
- js-desc-demo.js 使用JavaScript中的TLD描述散列映射进行演示。
- js-type-demo.js 使用JavaScript中的TLD类型散列映射进行演示。
- js-info-demo.js 使用JavaScript中的TLD信息散列映射数组进行演示。
PHP使用
-
使用composer将
katmore/tld-enum包添加到您的项目$ composer require katmore/tld-enum
-
通过使用
\TldEnum\TldList::TLD_LIST类常量数组访问列表<?php print_r(\TldEnum\TldList::TLD_LIST); //an array with every IANA TLD
以下示例...
<?php use TldEnum\TldList; echo "There are " . count(TldList::TLD_LIST) . " IANA TLDs\n"; $tldCheck = "com"; echo "Is '$tldCheck' a real TLD?\n"; if (in_array(strtolower($tldCheck), TldList::TLD_LIST)) { echo " yes\n"; } else { echo " no\n"; } $tldCheck = "somethingWeird"; echo "Is '$tldCheck' a real TLD?\n"; if (in_array(strtolower($tldCheck), TldList::TLD_LIST)) { echo " yes\n"; } else { echo " no\n"; }
应产生以下输出...
There are 1577 IANA TLDs Is 'com' a real TLD? yes Is 'somethingWeird' a real TLD? no
更多PHP示例
- php-demo.php 使用PHP中的简单TLD数组进行演示。
- php-TldDesc-demo.php 使用PHP中的TLD描述散列映射进行演示。
- php-TldType-demo.php 使用PHP中的TLD类型散列映射进行演示。
- php-TldInfo-demo.php 使用PHP中的TLD信息散列映射数组进行演示。
TLD列表格式
-
CSV: tlds.csv
提供每行一个IANA顶级域名的CSV文件,包含以下三个列: domain(TLD)、description和type。
-
PHP
-
提供一个PHP源文件,包含一个类常量数组,其中包含每个IANA顶级域名。
-
提供一个PHP源文件,包含一个类常量关联数组,每个键对应一个IANA顶级域名,对应的值是TLD的“description”。
-
提供一个PHP源文件,包含一个类常量关联数组,每个键对应一个IANA顶级域名,对应的值是TLD的“type”。
-
提供一个PHP源文件,包含一个类常量数组,每个元素是每个IANA顶级域名的“info”关联数组。
-
-
JSON
-
一个包含所有IANA顶级域的JSON格式数组。
-
一个包含每个IANA顶级域及其对应“描述”值的JSON格式对象。
-
一个包含每个IANA顶级域及其对应“类型”值的JSON格式对象。
-
一个包含每个IANA顶级域的“info”对象元素的JSON格式数组。
-
-
JavaScript
更新TLD格式文件
可以使用TLD更新实用工具通过IANA的最新数据更新所有TLD列表格式。
$ bin/devel/update-formats.sh
TLD更新实用工具前提条件
-
Node.js版本8.11或更高。
-
(可选) PHP命令行版本7.2或更高,用于重新生成PHP格式文件。
-
package.json中的devDependencies必须可用。
-
如果使用npm在独立项目外部安装了tld-enum,则必须手动安装tld-enum的dev依赖项,如下例所示
npm install async-request --save-dev npm install cheerio --save-dev npm install commander --save-dev npm install country-data --save-dev npm install countryjs --save-dev npm install csv-parse --save-dev npm install csv-stringify --save-dev npm install es6-promisify --save-dev npm install fs --save-dev npm install fs-extra --save-dev npm install md5-file --save-dev npm install pathinfo --save-dev npm install request --save-dev npm install tmp --save-dev
-
如果使用npm在独立项目外部安装了tld-enum,则可以从node_module目录执行TLD更新实用工具,如下例所示
node_modules/tld-enum/bin/devel/update-formats.sh
-
TLD更新实用工具使用方法
usage: update-formats.sh [-h]|[-q][format file options...] -h,--help: Print a help message and exit. -q,--quiet: Print only critical messages. format file options: --force-php: Creating the PHP format files is mandatory. --skip-php: Always skip creating the PHP format files. --skip-csv: Use existing tlds.csv and do not download new data from IANA.
TLD更新助手
内部,TLD更新实用工具使用多个"助手"脚本生成完整的一套原生格式列表。除了开发和技术故障排除目的之外,不应直接执行这些单个"助手"脚本。
法律
此项目中的源代码基于来自incognico/list-of-top-level-domains项目的某些源代码的分支,该源代码于2017-12-04检索,并已发布到公有领域。
版权
TLD枚举 - https://github.com/katmore/tld-enum
以下版权声明适用于本项目中所有资源,除非另有说明
版权(c)2017-2018 Doug Bird。保留所有权利。
许可
TLD枚举项目中的所有资源均为版权免费软件,除非另有说明。
您可以在“MIT许可(MIT)”或“GPL v3许可”的条款和条件下重新分发和修改它。请参阅LICENSE和GPLv3。
这些许可条件不适用于已发布到公有领域的任何资源;这些资源列在TLD枚举项目的“公有领域资源”部分中。
公有领域资源
以下项目的资源现在已发布到公有领域
- tlds.csv
- formats/js/tld-enum/list.js
- 格式/js/tld-枚举/desc.js
- 格式/js/tld-枚举/info.js
- 格式/js/tld-枚举/type.js
- 格式/json/tld-列表.json
- 格式/json/tld-描述.json
- 格式/json/tld-信息.json
- 格式/json/tld-类型.json
- 格式/php/TldEnum/TldList.php
- 格式/php/TldEnum/TldDesc.php
- 格式/php/TldEnum/TldInfo.php
- 格式/php/TldEnum/TldType.php
- 资源/tld-描述.csv