arrayaccess / dns-client

1.0.2 2023-11-13 08:59 UTC

This package is auto-updated.

Last update: 2024-09-03 17:59:22 UTC


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尚未完全实现

注意

资源记录类型RRTypes尚未完成,将使用RRDefault作为默认。