xandco/domainparser

Domain Parser, parses and validates a domain name.

v2.0.1 2024-04-02 13:56 UTC

This package is auto-updated.

Last update: 2024-10-18 02:24:30 UTC


README

Latest Version on Packagist Total Downloads License

Domain Parser simply parses a domain name you supply.

During the parsing process, the package will download a list of all Public Suffixes provided by Mozilla, iterate through it and save it to the systems temp folder and will update this list after a week. Next, the supplied domain will get parsed and broken up into parts and compared to the saved suffix list to determine the TLD the domain is using, then will complete a sanity check on the domain to ensure validity of it. Once this is finished, you'll receive an object containing all relevant information on the domain and its parts.

Installation

Install this package via composer:

$ composer require warden/domain-parser

This service provider must be installed (if using anything below Laravel 5.5)

// config/app.php

'providers' => [
    DomainParser\DomainParserServiceProvider::class,
];

Publish and customize configuration file with:

$ php artisan vendor:publish --provider="DomainParser\DomainParserServiceProvider"

Usage

Create new DomainParser object:

use DomainParser\DomainParser;
...
$domainParser = new DomainParser( $options = [] );

Then call parse() method to parse the domain:

$domainParser->parse( 'www.example.com' );

Here is an example of the output:

[
    'valid_hostname' => true,
    'fqdn' => [
        'ascii' => 'www.example.com',
        'idn' => 'www.example.com'
    ],
    'sub_domains' => [
        'ascii' => [
            0 => 'www'
        ],
        'idn' => [
            0 => 'www'
        ]
    ],
    'domain' => [
        'ascii' => 'example',
        'idn' => 'example'
    ],
    'tld' => [
        'group' => [
            'ascii' => 'com',
            'idn' => 'com'
        ],
        'tld' => [
            'ascii' => 'com',
            'idn' => 'com'
        ]
    ]
]

Options

When creating the DomainParser object, there is only one array parameter that can be passed, which is optional.

Options array parameters:

Instead of setting these options when creating the object, you can alternatively set these globally in the configuration file. You can publish the configuration and customize it as shown in the Installation section.

Changelog

Please see the changelog for more information on what has changed recently.

Testing

$ composer test

Contributing

Please see contributing.md for details and a todolist.

Security

If you discover any security related issues, please email hello@xand.co instead of using the issue tracker.

Credits

License

MIT - Please see the license file for more information.