psl:基于公共后缀列表JavaScript域名解析器

  • h3_392215
    了解作者
  • 193.1KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-06-15 13:33
    上传日期
psl(公共后缀列表) psl是基于的JavaScript域名解析器。 该实现是的进行测试的,并由提供。 提供的跨浏览器测试 什么是公共后缀列表? 公共后缀列表是跨供应商的一项举措,旨在提供准确的域名后缀列表。 公共后缀列表是Mozilla项目的一项计划,但作为社区资源进行维护。 它可以在任何软件中使用,但最初是为了满足浏览器制造商的需求而创建的。 “公共后缀”是Internet用户可以直接注册名称的名称。 公共后缀的一些示例是“ .com”,“。co.uk”和“ pvt.k12.wy.us”。 公共后缀列表是所有已知公共后缀的列表。 资料来源: : 安装 Node.js npm install --save psl 浏览器 下载psl.min.js并将其包含在脚本标签中。 < script src =" psl.min.js " > </ script > 该脚本
psl-master.zip
  • psl-master
  • .eslintrc
    176B
  • scripts
  • ci-build.sh
    342B
  • update-rules.js
    2KB
  • .npmignore
    75B
  • examples
  • index.html
    728B
  • .travis.yml
    269B
  • LICENSE
    1.1KB
  • test
  • psl.is-valid.spec.js
    681B
  • psl.parse.spec.js
    5.7KB
  • psl.get.spec.js
    393B
  • psl.spec.js
    386B
  • mozilla-data.js
    4.4KB
  • README.md
    6.6KB
  • browserstack-logo.svg
    7.4KB
  • dist
  • psl.min.js
    124.5KB
  • psl.js
    148.7KB
  • data
  • rules.json
    127.3KB
  • .gitignore
    40B
  • index.js
    5.9KB
  • karma.conf.js
    499B
  • .eslintignore
    6B
  • package-lock.json
    223.7KB
  • package.json
    1.4KB
内容介绍
# psl (Public Suffix List) [![NPM](https://nodei.co/npm/psl.png?downloads=true&downloadRank=true)](https://nodei.co/npm/psl/) [![Greenkeeper badge](https://badges.greenkeeper.io/lupomontero/psl.svg)](https://greenkeeper.io/) [![Build Status](https://travis-ci.org/lupomontero/psl.svg?branch=master)](https://travis-ci.org/lupomontero/psl) [![devDependency Status](https://david-dm.org/lupomontero/psl/dev-status.png)](https://david-dm.org/lupomontero/psl#info=devDependencies) `psl` is a `JavaScript` domain name parser based on the [Public Suffix List](https://publicsuffix.org/). This implementation is tested against the [test data hosted by Mozilla](http://mxr.mozilla.org/mozilla-central/source/netwerk/test/unit/data/test_psl.txt?raw=1) and kindly provided by [Comodo](https://www.comodo.com/). Cross browser testing provided by [](https://www.browserstack.com/) ## What is the Public Suffix List? The Public Suffix List is a cross-vendor initiative to provide an accurate list of domain name suffixes. The Public Suffix List is an initiative of the Mozilla Project, but is maintained as a community resource. It is available for use in any software, but was originally created to meet the needs of browser manufacturers. A "public suffix" is one under which Internet users can directly register names. Some examples of public suffixes are ".com", ".co.uk" and "pvt.k12.wy.us". The Public Suffix List is a list of all known public suffixes. Source: http://publicsuffix.org ## Installation ### Node.js ```sh npm install --save psl ``` ### Browser Download [psl.min.js](https://raw.githubusercontent.com/lupomontero/psl/master/dist/psl.min.js) and include it in a script tag. ```html <script src="psl.min.js"></script> ``` This script is browserified and wrapped in a [umd](https://github.com/umdjs/umd) wrapper so you should be able to use it standalone or together with a module loader. ## API ### `psl.parse(domain)` Parse domain based on Public Suffix List. Returns an `Object` with the following properties: * `tld`: Top level domain (this is the _public suffix_). * `sld`: Second level domain (the first private part of the domain name). * `domain`: The domain name is the `sld` + `tld`. * `subdomain`: Optional parts left of the domain. #### Example: ```js var psl = require('psl'); // Parse domain without subdomain var parsed = psl.parse('google.com'); console.log(parsed.tld); // 'com' console.log(parsed.sld); // 'google' console.log(parsed.domain); // 'google.com' console.log(parsed.subdomain); // null // Parse domain with subdomain var parsed = psl.parse('www.google.com'); console.log(parsed.tld); // 'com' console.log(parsed.sld); // 'google' console.log(parsed.domain); // 'google.com' console.log(parsed.subdomain); // 'www' // Parse domain with nested subdomains var parsed = psl.parse('a.b.c.d.foo.com'); console.log(parsed.tld); // 'com' console.log(parsed.sld); // 'foo' console.log(parsed.domain); // 'foo.com' console.log(parsed.subdomain); // 'a.b.c.d' ``` ### `psl.get(domain)` Get domain name, `sld` + `tld`. Returns `null` if not valid. #### Example: ```js var psl = require('psl'); // null input. psl.get(null); // null // Mixed case. psl.get('COM'); // null psl.get('example.COM'); // 'example.com' psl.get('WwW.example.COM'); // 'example.com' // Unlisted TLD. psl.get('example'); // null psl.get('example.example'); // 'example.example' psl.get('b.example.example'); // 'example.example' psl.get('a.b.example.example'); // 'example.example' // TLD with only 1 rule. psl.get('biz'); // null psl.get('domain.biz'); // 'domain.biz' psl.get('b.domain.biz'); // 'domain.biz' psl.get('a.b.domain.biz'); // 'domain.biz' // TLD with some 2-level rules. psl.get('uk.com'); // null); psl.get('example.uk.com'); // 'example.uk.com'); psl.get('b.example.uk.com'); // 'example.uk.com'); // More complex TLD. psl.get('c.kobe.jp'); // null psl.get('b.c.kobe.jp'); // 'b.c.kobe.jp' psl.get('a.b.c.kobe.jp'); // 'b.c.kobe.jp' psl.get('city.kobe.jp'); // 'city.kobe.jp' psl.get('www.city.kobe.jp'); // 'city.kobe.jp' // IDN labels. psl.get('食狮.com.cn'); // '食狮.com.cn' psl.get('食狮.公司.cn'); // '食狮.公司.cn' psl.get('www.食狮.公司.cn'); // '食狮.公司.cn' // Same as above, but punycoded. psl.get('xn--85x722f.com.cn'); // 'xn--85x722f.com.cn' psl.get('xn--85x722f.xn--55qx5d.cn'); // 'xn--85x722f.xn--55qx5d.cn' psl.get('www.xn--85x722f.xn--55qx5d.cn'); // 'xn--85x722f.xn--55qx5d.cn' ``` ### `psl.isValid(domain)` Check whether a domain has a valid Public Suffix. Returns a `Boolean` indicating whether the domain has a valid Public Suffix. #### Example ```js var psl = require('psl'); psl.isValid('google.com'); // true psl.isValid('www.google.com'); // true psl.isValid('x.yz'); // false ``` ## Testing and Building Test are written using [`mocha`](https://mochajs.org/) and can be run in two different environments: `node` and `phantomjs`. ```sh # This will run `eslint`, `mocha` and `karma`. npm test # Individual test environments # Run tests in node only. ./node_modules/.bin/mocha test # Run tests in phantomjs only. ./node_modules/.bin/karma start ./karma.conf.js --single-run # Build data (parse raw list) and create dist files npm run build ``` Feel free to fork if you see possible improvements! ## Acknowledgements * Mozilla Foundation's [Public Suffix List](https://publicsuffix.org/) * Thanks to Rob Stradling of [Comodo](https://www.comodo.com/) for providing test data. * Inspired by [weppos/publicsuffix-ruby](https://github.com/weppos/publicsuffix-ruby) ## License The MIT License (MIT) Copyright (c) 2017 Lupo Montero <lupomontero@gmail.com> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
评论
    相关推荐
    • node-hdhomerun:用于 node.js 的 HDHomeRun 电视调谐器的低级设备控制
      node.js 控制您的 HDHomeRun 网络附加数字电视调谐器。 该模块提供了一个 JavaScript 接口来发现设备,以及获取和设置设备控制变量。 虽然 hdhomerun 本身并不是一个完整的解决方案,但它提供了构建更高级别的...
    • Node.js-Android动态分类搜索
      Android动态分类搜索
    • kik-node:Node.js的Kik API
      该库是Kik Bot API的Node包装器,可帮助您在Node.js中为开发机器人。 要了解有关Kik Bot平台的更多信息,请访问或按照以下步骤开始。 贡献 该项目遵守《贡献者公约》。 通过参与,您将遵守此代码。 请向报告不可接受...
    • alamode:基于Node.JS RegExp的源代码编译器
      ÀLaMode是Node.JS中基于RegExp的源代码编译器,它支持对import和export语句进行编译,包括用于调试的源映射,同时保持原始代码几乎相同(不需要互操作)。 它还可以转换JSX(没有源映射ATM和一些小的限制)。 ...
    • node_rfidgeek:Node.js rfidgeek 连接器
      Node.js 的简单 rfidgeek 适配器 该适配器主要用于德州仪器 (TI) 制造的 Univelop 500 RFID 读写器。 此阅读器支持以下标签: ISO15693 ISO14443A ISO14443B 塔吉特 使用 使用事件发射器传递标签和内容,可以由...
    • scanservjs:SANE扫描器Node.js Web UI
      我决定切换为仅使用此功能,我发现在浏览器中使用此功能非常完美,并且比打印机制造商的膨胀软件更好 它使我仍然可以使用旧的hp3900扫描仪,而不必担心驱动程序和特定于供应商的UI。 此外,仅通过令人敬畏的Web界面...
    • node-carquery-api:CarQueryAPI的Node.js包装器
      节点汽车查询API 用法 const CarQuery = require('carquery-api');...getModels获取制造商的所有模型 getTrims获取各种模型的详细信息 getYears获取最小和最大年份 皮棉 npm run lint 测试 npm test
    • oors:适用于制造商的模块化node.js框架
      oors是在express.js之上构建的模块化node.js框架,可轻松构建健壮的GraphQL和RESTful API。
    • Daltoki:使用Node.js进行的Tteok官方解释器
      使用Node.js进行的Tteok官方解释器 去做 Lexer制造 解析器生产 评估器生产 文件制作 标准内置功能 添加 < add> 1 2 3 4 返回作为参数输入的所有数字的总和。 子 < sub> 1 2 3 4 返回第一个参数与其余参数之...
    • muzzley-client:node.js muzzley 客户端库
      这个库是 JavaScript / Node.js 客户端,用于在您的设备和 muzzley 云之间进行实时通信。 如果您愿意,也可以使用我们的。 入门 为了更好地了解 muzzley 以及如何将 IoT 对象与我们,请阅读我们的。 安装 要使用该...