定制 mesour/dns-checker 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

mesour/dns-checker

最新稳定版本:v0.3.0

Composer 安装命令:

composer require mesour/dns-checker

包简介

DNS checker written in PHP for check and compare real DNS records for domain.

README 文档

README

  • Author

  • DNS checker written in PHP for check and compare real DNS records for domain.

  • In AaaaDnsRecord is IPv6 compressed to short format.

  • Problem with PHP warning: dns_get_record(): A temporary server error occurred. is resolved.

Install

  • With Composer

     composer require mesour/dns-checker 
  • Or download source from GitHub

Usage

  1. Create instance \Mesour\DnsChecker\Providers\DnsRecordProvider:
$provider = new \Mesour\DnsChecker\Providers\DnsRecordProvider();
  1. Create instance \Mesour\DnsChecker\DnsChecker:
$checker = new \Mesour\DnsChecker\DnsChecker($provider);
  1. Get DNS record set (second parameter type have same values as parameter type for PHP function dns_get_record().):
$dnsRecordSet = $checker->getDnsRecordSet('example.com', DNS_A + DNS_AAAA);

$dnsRecordSet contains for example:

Mesour\DnsChecker\DnsRecordSet dnsRecords private => array (3) | 0 => Mesour\DnsChecker\MxRecord #86b8 | | priority private => 40 | | target private => "alt3.aspmx.l.example.com" (24) | | type private => "MX" (2) | | name private => "example.com" (11) | | content private => "40 alt3.aspmx.l.example.com" (27) | | ttl private => 404 | 1 => Mesour\DnsChecker\MxRecord #5a7b | | priority private => 50 | | target private => "alt4.aspmx.l.example.com" (24) | | type private => "MX" (2) | | name private => "example.com" (11) | | content private => "50 alt4.aspmx.l.example.com" (27) | | ttl private => 404 

DnsRecordSet

  • Implements \ArrayAccess, \Countable and \Iterator.

Check if exist domain record:

$dnsRecord = new \Mesour\DnsChecker\Records\DnsRecord('NS', 'example.com', 'ns3.example.com'); Assert::true($dnsRecordSet->hasRecord($dnsRecord));

Get matching DNS record:

$dnsRecord = new \Mesour\DnsChecker\Records\DnsRecord('AAAA', 'example.com', '2a00:4444:5555:6666::200e'); $nsDnsRecord = $dnsRecordSet->getMatchingRecord($dnsRecord);

More information in one DnsRecordSet

$request = new DnsRecordRequest(); $request->addFilter('example.com'); $request->addFilter('www.example.com', DNS_CNAME); // ... more lines /** @var \Mesour\DnsChecker\DnsChecker $checker */ /** @var \Mesour\DnsChecker\DnsRecordSet $records */ $records = $checker->getDnsRecordSetFromRequest($request);

Difference between two DnsRecordSets

$factory = new DnsRecordSetDiffFactory(); $expected = $this->createExpectedDnsRecordSet(); $checker = new DnsChecker(new DnsRecordProvider()); $recordSet = $checker->getDnsRecordSet('example.com'); /** @var Mesour\DnsChecker\Diffs\DnsRecordSetDiff $diff */ $diff = $factory->createDiff($expected, $recordSet); Assert::true($diff->hasDifferentRecord()); $diffs = $diff->getDiffs(); Assert::count(5, $diffs); Assert::type(Mesour\DnsChecker\Diffs\DnsRecordDiff::class, $diffs[0]); /** @var DnsRecordDiff $recordDiff */ $recordDiff = $diffs[4]; Assert::true($recordDiff->isDifferent()); // Can use this for get array of similar records with same type $recordDiff->getSimilarRecords();

Mock DNS record provider

For mock DNS provider your tests can use Mesour\DnsChecker\StaticDnsRecordProvider or Mesour\DnsChecker\ArrayDnsRecordProvider.

Values are as return values of PHP function dns_get_record().

$provider = new \Mesour\DnsChecker\Providers\StaticDnsRecordProvider([ [ 'host' => 'example.com', 'class' => 'IN', 'ttl' => 34, 'type' => 'A', 'ip' => '216.58.201.78', ], ]);

Development

Run command make qa

PhpUnit

Run command make phpunit

PHP Stan

Run command make phpstan

Code style

Run command make cs

Run command make csf for fix

Parallel lint

Run command make lint

统计信息

  • 总下载量: 23.67k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 20
  • 点击次数: 2
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 20
  • Watchers: 2
  • Forks: 8
  • 开发语言: PHP

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2026-01-04

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固