xandco/domainparser

域名解析器,用于解析和验证域名。

v2.0.1 2024-04-02 13:56 UTC

This package is auto-updated.

Last update: 2024-09-18 02:06:09 UTC


README

Latest Version on Packagist Total Downloads License

域名解析器简单地对提供的域名进行解析。

在解析过程中,该包将下载由 Public Suffixes 提供的列表,由 Mozilla 提供,遍历它并将其保存到系统临时文件夹中,并在一周后更新此列表。接下来,将提供的域名解析成部分,并与保存的后缀列表进行比较,以确定域名使用的顶级域名(TLD),然后对域名进行完整性检查以确保其有效性。一旦完成,您将收到一个包含域名及其各部分所有相关信息的对象。

安装

使用 composer 安装此包

$ composer require warden/domain-parser

必须安装此服务提供程序(如果使用的是 Laravel 5.5 以下版本)

// config/app.php

'providers' => [
    DomainParser\DomainParserServiceProvider::class,
];

使用以下命令发布并自定义配置文件:

$ php artisan vendor:publish --provider="DomainParser\DomainParserServiceProvider"

用法

创建新的 DomainParser 对象

use DomainParser\DomainParser;
...
$domainParser = new DomainParser( $options = [] );

然后调用 parse() 方法来解析域名

$domainParser->parse( 'www.example.com' );

以下是输出示例

[
    'valid_hostname' => true,
    'fqdn' => [
        'ascii' => 'www.example.com',
        'idn' => 'www.example.com'
    ],
    'sub_domains' => [
        'ascii' => [
            0 => 'www'
        ],
        'idn' => [
            0 => 'www'
        ]
    ],
    'domain' => [
        'ascii' => 'example',
        'idn' => 'example'
    ],
    'tld' => [
        'group' => [
            'ascii' => 'com',
            'idn' => 'com'
        ],
        'tld' => [
            'ascii' => 'com',
            'idn' => 'com'
        ]
    ]
]

选项

在创建 DomainParser 对象时,只有一个可选的 array 参数可以传递。

选项数组参数

您可以在创建对象时设置这些选项,或者可以选择在配置文件中全局设置这些选项。您可以在安装部分中发布配置并自定义它。

变更日志

请参阅 changelog 了解最近的变化。

测试

$ composer test

贡献

请参阅 contributing.md 了解详细信息和一个待办事项列表。

安全

如果您发现任何安全相关的问题,请通过电子邮件 hello@xand.co 联系,而不是使用问题跟踪器。

鸣谢

许可证

MIT - 请参阅 许可证文件 了解更多信息。