xandco / whoisparser
Whois解析器,解析和格式化原始whois查询数据。
Requires
- illuminate/support: ~5|~6|~7|~8
- nesbot/carbon: ^2.41
Requires (Dev)
- mockery/mockery: ^1.1
- orchestra/testbench: ~3|~4
- phpunit/phpunit: ^8.0
- sempro/phpunit-pretty-print: ^1.0
This package is auto-updated.
Last update: 2024-09-29 06:02:50 UTC
README
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键的值(即root或whois)来检查返回的对象类型。
以下是两种输出的示例
/* * 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 - 请参阅许可证文件以获取更多信息。