New

Just launched: Vueblocks, a brand-new search engine for Vue packages! Explore Vueblocks →

astrotomic/laravel-dns

8,645 31
Install
composer require astrotomic/laravel-dns
Latest Version:0.3.0
PHP:^8.1
Laravel:9 · 10
Older releases:8
License:MIT
Last Updated:Sep 13, 2026
Links: GitHub  ·  Packagist
Maintainer: Gummibeer

Laravel DNS

Latest Version MIT License Offset Earth Larabelles

GitHub Workflow Status GitHub Workflow Status Total Downloads

Installation

composer require astrotomic/laravel-dns

Usage

use Astrotomic\Dns\Facades\Dns;

/** @var \Illuminate\Support\Collection $records */
$records = Dns::records('astrotomic.info', DNS_A);
use Astrotomic\Dns\Rules\DnsRecordExists;
use Spatie\Dns\Records\A;
use Spatie\Dns\Records\TXT;

return [
    'url' => [
        'required',
        'string',
        'url',
        // verify that domain of entered url
        // has any A, AAAA or CNAME record
        // and a TXT record with the users token
        DnsRecordExists::make()
            ->expect(DNS_A|DNS_AAAA|DNS_CNAME)
            ->expect(DNS_TXT, fn(TXT $record): bool => $record->txt() === 'token='.$this->user()->public_token),
    ],
    'email' => [
        'required',
        'string',
        'email',
        // verify that domain of entered email
        // has any MX record
        // and SPF setup
        DnsRecordExists::make()
            ->expect(DNS_MX)
            ->expect(DNS_TXT, fn(TXT $record): bool => str_starts_with($record->txt(), 'v=spf1 ')),
    ],
    'domain' => [
        'required',
        'string',
        // verify that entered domain
        // has an A record
        // pointing to our IP-address
        DnsRecordExists::make()
            ->expect(DNS_A, fn(A $record): bool => $record->ip() === '127.0.0.1'),
    ],
    'something' => [
        'required',
        'string',
        // verify that value is something with DNS
        DnsRecordExists::make(),
    ],
];
use Astrotomic\Dns\Domain;

protected $casts = [
    'domain' => Domain::class,
];
use Astrotomic\Dns\Domain;

/** @var \Astrotomic\Dns\Domain $domain */
$domain = Domain::make('dns@astrotomic.info');

/** @var string|null $domain */
$domain = Domain::parse('dns@astrotomic.info');

Related Packages

spatie/dns

Retrieve DNS records

3,240,725 612
astrotomic/laravel-mime

Laravel wrapper for symfony/mime

14,704 5
sashalenz/cloudflare-api

Cloudflare API SDK for Laravel

1,078 0
astrotomic/laravel-imgix

Laravel bindings and facade to generate imgix URLs and support for multiple sour...

28,673 9

Version History

Version Released PHP Laravel License
0.3.0 ^8.1 ^9.0 || ^10.0 MIT
0.2.0 ^8.0 ^8.0 || ^9.0 MIT
0.1.0 ^8.0 ^8.0 MIT