gemz/dns

获取简单的DNS记录

维护者

详细信息

github.com/gemzio/dns

主页

源代码

问题

资助包维护!
Patreon

1.0.0 2020-04-18 21:11 UTC

This package is auto-updated.

Last update: 2024-09-19 06:39:00 UTC


README

Latest Version on Packagist GitHub Tests Action Status Quality Score Total Downloads

检索给定域名的DNS记录。底层该包使用https://github.com/reactphp/reactphp进行并发DNS查询。

安装

您可以通过composer安装此包

composer require gemz/dns

用法

use Gemz\Dns\Dns;

// initialization
$dns = new Dns('gemz.io');
$dns = Dns::for('gemz.io');

// supported record types
// returns ["A", "CAA", "CNAME", "SOA", "TXT", "MX", "AAAA", "SRV", "NS", "PTR", "SSHFP"]
$dns = Dns::for('gemz.io')->allowedRecordTypes();

// get results for all record types
$dns = Dns::for('gemz.io')->records();

 // get result for specific record(s)
$dns = Dns::for('gemz.io')->records(['A', 'CNAME']);
$dns = Dns::for('gemz.io')->records('A', 'MX', 'TXT');

// using a nameserver
$dns = Dns::for('gemz.io')->useNameServer('example.gemz.io')->records();

// sanitizing domain
$domain = Dns::for('https://gemz.io')->getDomain(); // gemz.io

// record type results
$dns = Dns::for('gemz.io')->records('A', 'NS');
// depending on the record type "data" will be a string or an array with different keys
// result is an array in form of:
[
  "A" => [
    ["ttl" => 21599, "data" => "<ip>"]
  ],
  "NS" => [
    ["ttl" => 21599, "data" => "<nameserver1>"],
    ["ttl" => 21599, "data" => "<nameserver2>"],
  ],
  "MX" => [
    ["ttl" => 21599, "data" => ["priority" => 10, "target" => "<mx1>"]],
    ["ttl" => 21599, "data" => ["priority" => 20, "target" => "<mx2>"]],
  ]
];

测试

composer test
composer test-coverage

变更日志

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

贡献

请参阅CONTRIBUTING以获取详细信息。

安全

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

致谢

支持我们

Gemz.io由Stefan Riehl维护。您可以在Gemz.io github上找到所有开源项目。

许可证

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