Hostname extractor - A library to find parts of a hostname (suffix, tld, subdomain, ...)

1.3 2019-04-23 14:41 UTC

This package is auto-updated.

Last update: 2020-09-23 17:54:33 UTC


Latest Stable Version License Build Status Coverage Status Quality Score Total Downloads

Hostname Extractor

A simple library to manipulate domains.


require_once __DIR__ . '/vendor/autoload.php';

use BenTools\HostnameExtractor\HostnameExtractor;
use BenTools\HostnameExtractor\SuffixProvider\PublicSuffixProvider;

$extractor = new HostnameExtractor(new PublicSuffixProvider());
$hostname = $extractor->extract('');
dump($hostname->getSubdomain()); // my.preferred
dump($hostname->getDomain()); // domain
dump($hostname->getSuffix()); //
dump($hostname->getTld()); // uk
dump($hostname->getSuffixedDomain()); //
dump($hostname->isIp()); // false
dump($hostname->isIpv4()); // false
dump($hostname->isIpv6()); // false

As you can see, is considered as a suffix (otherwise, we would have considered that co is the domain and uk the suffix / tld).

The library parses the Public Suffix List, which stores thousands of existing suffixes.

To avoid network latency feel free to implement your own BenTools\HostnameExtractor\SuffixProvider\SuffixProviderInterface or to use your favorite PSR-16 library into a BenTools\HostnameExtractor\SuffixProvider\PSR16CacheSuffixProvider object.


PHP 7.1+ with mbstring extension is required.

composer require bentools/hostname-extractor ^1.0





See also

bentools/querystring - Easily manipulate your query strings.

bentools/uri-factory - PSR-7 UriInterface factory with multiple libaries support.