arrayaccess / dns-client
PHP DNS 客户端解析器
1.0.2
2023-11-13 08:59 UTC
Requires
- php: >=8.1
Requires (Dev)
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^10.4
- psr/cache: ^3
- slevomat/coding-standard: ^8.14
- squizlabs/php_codesniffer: 3.7.2
README
原生PHP DNS客户端/解析器实现RFC 1035。支持PSR-6: 缓存接口。
要求
PHP 8.1
或更高版本- 启用函数
focksopen
并允许对端口53
的出站连接 - 网络连接(绝对!)
安装
目前处于开发中
composer require arrayaccess/dns-client
使用
use ArrayAccess\DnsRecord\Cache\Adapter\Psr6CacheAdapter; use ArrayAccess\DnsRecord\DnsServerStorage; use ArrayAccess\DnsRecord\Resolver; $cache = new Psr6CacheAdapter(); // $cache->setCacheItemPool($cacheProvider); $dnsServer = DnsServerStorage::createDefault(); $resolver = new Resolver($dnsServer, $cache); /** * Lookup Single */ $useCache = true; // default to true $timeout = 3.5; // 3.5 seconds $response = $resolver->lookup('domain-name.ext', 'A', 'IN', $timeout, $useCache); /** * Enable Pseudo OPT */ $resolver->setDnsSec(true); $response = $resolver->lookup('domain-name.ext', 'A', 'IN'); $answers = $response->getAnswers(); $records = $answers->getRecords(); // Filter "A" Address Only $arrayA = $records->getFilteredType('A');
IXFR & AXFR尚未完全实现