xandco/whoisparser

Whois解析器,解析和格式化原始whois查询数据。

v1.0.0 2020-11-29 08:22 UTC

This package is auto-updated.

Last update: 2024-09-29 06:02:50 UTC


README

Latest Version on Packagist Total Downloads License

Whois解析器简单地解析您提供的原始根或whois数据。

在解析过程中,该包将通过正则表达式执行一些检查,以确定输入数据是否可用,以及输入数据是否包含错误或是否达到速率限制。然后,该包将清理输入数据并将每行格式化为键值对。完成这些后,它将开始遍历并解析数据为更易于阅读的格式,并根据您的输出格式偏好生成可靠的输出。

安装

通过composer安装此包

$ composer require xandco/whoisparser

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

// config/app.php

'providers' => [
    WhoisParser\WhoisParserServiceProvider::class,
];

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

$ php artisan vendor:publish --provider="WhoisParser\WhoisParserServiceProvider"

使用方法

创建新的WhoisParser对象

use WhoisParser\WhoisParser;
...
$whoisParser = new WhoisParser( $options = [] );

您需要使用外部方法获取您想要的任何域的whois数据,WhoisParser仅解析这些数据。一旦您有了原始的whois数据,您就可以调用parse()方法来解析数据。

$whoisParser->parse( '% IANA WHOIS server\n...' ); // root data
$whoisParser->parse( 'Domain Name: EXAMPLE.COM\n...' ); // whois data

根据您提供的是根数据还是whois数据,该包将返回不同结构的对象。您可以根据返回对象的type键的值(即rootwhois)来检查返回的对象类型。

以下是两种输出的示例

/*
 * Example of the `root` type output
 */
[
    'domain' => 'com',
    'is_valid' => true,
    'type' => 'root',
    'data' => [
        'status' => 'active',
        'whois' => 'whois.example.com',
        'contacts' => [
            'sponsor' => [
                'organisation' => 'Example Global Registry Services',
                'address' => [
                    '12345 Example Way',
                    'San Francisco California 94112',
                    'United States'
                ]
            ],
            'administrative' => [...],
            'technical' => [...],
        ],
        'nameservers' => [
            [
                'host' => 'ns.example.com',
                'ipv4' => '127.0.0.0',
                'ipv6' => '::1'
            ],
            ...
        ],
        'dates' => [
            'created' => '1985-01-01 00:00:00',
            'updated' => '2017-10-05 00:00:00',
        ]
    ],
    'raw' => '% IANA WHOIS server\n...' // depending on options
]

/*
 * Example of the `whois` type output
 */
[
    'domain' => 'example.com',
    'is_valid' => true,
    'is_reserved' => false,
    'is_available' => false,
    'type' => 'whois',
    'data' => [
        '_id' => '0897654321_DOMAIN_COM-EXPL',
        'status' => [
            [
                'code' => 'clientUpdateProhibited',
                'url' => 'https:\/\/www.icann.org\/epp#clientUpdateProhibited'
            ],
            ...
        ],
        'whois' => 'whois.example.com',
        'registrar' => [
            '_id' => '123',
            'name' => 'Example, Inc.',
            'whois' => 'whois.example.com',
            'abuse_contact' => [
                'email' => 'abuse@example.com',
                'phone' => '+1.4003219876',
            ],
        ],
        'contacts' => [
            'registrant' => [
                'name' => 'Domain Administrator',
                'organization' => 'Example Corporation',
                'address' => {
                   'street' => '12345 Example Way',
                   'city' => 'San Francisco',
                   'state_province' => 'CA',
                   'postal_code' => '94112',
                   'country' => 'US'
                 },
                'phone' => '+1.0981237645',
                'phone_ext' => null,
                'fax' => '+1.1230984567',
                'fax_ext' => null,
                'email' => 'admin@example.com',
            ],
            'administrative' => [...],
            'technical' => [...],
            'billing' => [...], // depending on options
        ],
        'nameservers' => [
            [
                'host' => 'ns.example.com',
                'ipv4' => null, // depending on options
                'ipv6' => null // depending on options
            ],
            ...
        ],
        'dnssec' => 'unsigned',
        'dates' => [
            'created' => '1991-05-01 21:00:00',
            'updated' => '2020-06-03 13:24:15',
            'expiration' => '2021-05-02 21:00:00',
        ]
    ],
    'raw' => 'Domain Name: EXAMPLE.COM\n...' // depending on options
]

选项

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

选项数组参数

您可以在创建对象时设置这些选项,或者您可以在配置文件中全局设置这些选项,以及修改用于确定诸如:无效、速率限制的whois响应以及保留、已占用、可用的域等内容的正则表达式模式。您可以在安装部分中发布配置并进行自定义。

更新日志

请参阅更新日志以获取有关最近更改的更多信息。

测试

$ composer test

贡献

请参阅contributing.md以获取详细信息和工作列表。

安全

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

鸣谢

许可证

MIT - 请参阅许可证文件以获取更多信息。