katmore/tld-enum

各种格式下所有ICANN顶级域名的列表

安装次数: 19,622

依赖关系: 0

建议者: 0

安全性: 0

星标: 1

关注者: 2

分支: 44

开放问题: 0

语言:JavaScript

v2.0.6 2018-06-22 07:42 UTC

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示例

TLD列表格式

  • CSV: tlds.csv

    提供每行一个IANA顶级域名的CSV文件,包含以下三个列: domain(TLD)、descriptiontype

  • PHP

    • TldList.php

      提供一个PHP源文件,包含一个类常量数组,其中包含每个IANA顶级域名。

    • TldDesc.php

      提供一个PHP源文件,包含一个类常量关联数组,每个键对应一个IANA顶级域名,对应的值是TLD的“description”。

    • TldType.php

      提供一个PHP源文件,包含一个类常量关联数组,每个键对应一个IANA顶级域名,对应的值是TLD的“type”。

    • TldInfo.php

      提供一个PHP源文件,包含一个类常量数组,每个元素是每个IANA顶级域名的“info”关联数组。

  • JSON

    • tld-list.json

      一个包含所有IANA顶级域的JSON格式数组。

    • tld-desc.json

      一个包含每个IANA顶级域及其对应“描述”值的JSON格式对象。

    • tld-type.json

      一个包含每个IANA顶级域及其对应“类型”值的JSON格式对象。

    • tld-info.json

      一个包含每个IANA顶级域的“info”对象元素的JSON格式数组。

  • JavaScript

    • list.js

      一个包含所有IANA顶级域的数组导出模块。

    • desc.js

      一个包含每个IANA顶级域及其对应“描述”值的对象的导出模块。

    • type.js

      一个包含每个IANA顶级域及其对应“类型”值的对象的导出模块。

    • info.js

      一个包含每个IANA顶级域的“info”对象元素的数组导出模块。

更新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许可”的条款和条件下重新分发和修改它。请参阅LICENSEGPLv3

这些许可条件不适用于已发布到公有领域的任何资源;这些资源列在TLD枚举项目的“公有领域资源”部分中。

公有领域资源

以下项目的资源现在已发布到公有领域