spatie / dns
检索DNS记录
Requires
- php: ^8.0
- ext-mbstring: *
- spatie/macroable: ^1.0|^2.0
- symfony/process: ^5.3.7|^6.0|^7.0
Requires (Dev)
- phpunit/phpunit: ^9.5.10
- spatie/ray: ^1.30
This package is auto-updated.
Last update: 2024-08-24 13:42:20 UTC
README
此包包含一个可以获取DNS记录的类。
use Spatie\Dns\Dns; $dns = new Dns(); $dns->getRecords('spatie.be'); // returns all available dns records $dns->getRecords('spatie.be', 'A'); // returns only A records
您可以使用各种方法来检索记录的信息。
$records = $dns->getRecords('spatie.be') $hostNameOfFirstRecord = $records[0]->host();
支持我们
我们投入了大量资源来创建一流的开放式源代码包。您可以通过购买我们的付费产品之一来支持我们。
我们非常感谢您从您的家乡给我们寄来明信片,并说明您正在使用我们的哪些包。您可以在我们的联系页面上找到我们的地址。我们将所有收到的明信片发布在我们的虚拟明信片墙上。
安装
如果您没有安装 dig,则需要安装它。
您可以通过composer安装此包
composer require spatie/dns
用法
该类可以获取以下记录类型:A
、AAAA
、CNAME
、NS
、PTR
、SOA
、MX
、SRV
、TXT
、DNSKEY
、CAA
、NAPTR
。
use Spatie\Dns\Dns; $dns = new Dns(); $dns->getRecords('spatie.be'); // returns all available dns records $dns->getRecords('spatie.be', 'A'); // returns only A records $dns->getRecords('spatie.be', ['A', 'CNAME']); // returns both A and CNAME records $dns->getRecords('spatie.be', DNS_MX); // returns only MX records $dns->getRecords('spatie.be', DNS_A | DNS_AAAA); // returns both A and AAAA records
getRecords
将返回一个对象数组,这些对象实现了Spatie\Dns\Records\Record
接口。
处理DNS记录
以下是获取域的第一个A记录的方法。
$ARecord = $dns->getRecords('spatie.be', 'A')[0];
这些方法可以用于所有记录
host()
:返回主机(spatie.be
)ttl()
:返回TTL(900
)class()
:返回类(IN
)type()
:返回类型(A
)
在将记录转换为字符串时,您将获得所有信息,这些信息由制表符分隔。
(string)$ARecord // returns `spatie.be. 900 IN A 138.197.187.74`
某些记录具有额外的可用方法。例如,类型为A的记录有一个额外的ip()
方法。要了解有哪些额外的方法,请检查源代码中所有记录类上面的docblocks。
使用特定的nameserver
您可以从特定的nameserver获取记录。
use Spatie\Dns\Dns; (new Dns) ->useNameserver('ns1.openminds.be') // use ns1.openminds.be ->getRecords('spatie.be');
猜测记录
当您有一个包含dns记录的字符串时,您可以将它转换为Record
use \Spatie\Dns\Support\Factory(); // returns instance of \Spatie\Dns\Records\CNAME (new Factory())->guess('www.spatie.be. 300 IN CNAME spatie.be.');
使用自定义处理器
一个Handler
负责获取特定类型的DNS记录。
默认情况下,这些与包一起提供的处理器被使用
Spatie\Dns\Handler\Dig
Spatie\Dns\Handler\DnsGetRecord
您可以创建自定义处理器。任何扩展自Spatie\Dns\Handler\Handler
的类都是有效的处理器。
您可以通过将自定义处理器传递到Spatie\Dns\Dns
上的useHandlers
来使用自定义处理器类。
$results = $this->dns ->useHandlers([new YourCustomHandler()]) ->getRecords('spatie.be');
内部结构
我们将使用dig来获取DNS信息。如果它未安装到您的系统上,我们将调用本机的dns_get_record()
函数。
测试
composer test
变更日志
有关最近更改的更多信息,请参阅变更日志。
贡献
有关详细信息,请参阅贡献指南。
安全性
如果您发现关于安全性的错误,请发送邮件至 security@spatie.be。
Postcardware
您可以使用此包,但如果它进入了您的生产环境,我们非常欢迎您从家乡给我们寄一张明信片,注明您正在使用我们哪些包。
我们的地址是:Spatie,Kruikstraat 22,2018 安特卫普,比利时。
我们将所有收到的明信片 发布在我们的公司网站上。
致谢
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件。