IO::Socket::SSL::PublicSuffix - provide access to Mozilla's list of effective TLD names |
IO::Socket::SSL::PublicSuffix - provide access to Mozilla's list of effective TLD names
# use builtin default use IO::Socket::SSL::PublicSuffix; $ps = IO::Socket::SSL::PublicSuffix->default;
# load from string $ps = IO::Socket::SSL::PublicSuffix->from_string("*.uk\n*");
# load from file or file handle $ps = IO::Socket::SSL::PublicSuffix->from_file($filename); $ps = IO::Socket::SSL::PublicSuffix->from_file(\*STDIN);
# --- string in -> string out # $rest -> whatever.host # $tld -> co.uk my ($rest,$tld) = $ps->public_suffix('whatever.host.co.uk'); my $tld = $ps->public_suffix('whatever.host.co.uk');
# $root_domain -> host.co.uk my $root_domain = $ps->public_suffix('whatever.host.co.uk', 1);
# --- array in -> array out # $rest -> [qw(whatever host)] # $tld -> [qw(co uk)] my ($rest,$tld) = $ps->public_suffix([qw(whatever host co uk)]);
----
# To update this file with the current list: perl -MIO::Socket::SSL::PublicSuffix -e 'IO::Socket::SSL::PublicSuffix::update_self_from_url()'
This module uses the list of effective top level domain names from the mozilla project to determine the public top level domain for a given hostname.
default(%args)
min_suffix
can be given in %args
to specify the minimal suffix, default
is 1.
from_string(string,%args)
default
for %args
.
default
for %args
.
$add
parts of the non-tld part to the tld, e.g. with $add=1
it
will return the root domain.
If there were no explicit matches against the public suffix configuration it will fall back to a suffix of length 1.
The function accepts a string or an array-ref (e.g. host split by .
). In the
first case it will return string(s), in the latter case array-ref(s).
International hostnames or labels can be in ASCII (IDNA form starting with
xn--
) or unicode. In the latter case an IDNA handling library like
the Net::IDN:::Encode manpage, the Net::LibIDN manpage or recent versions of URI need to be
installed.
http://publicsuffix.org/list/effective_tld_names.dat
Domain::PublicSuffix, Mozilla::PublicSuffix
Q: Why yet another module, we already have L<Domain::PublicSuffix> and L<Mozilla::PublicSuffix>. A: Because the public suffix data change more often than these modules do, IO::Socket::SSL needs this list and it is more easy this way to keep it up-to-date.
Steffen Ullrich
IO::Socket::SSL::PublicSuffix - provide access to Mozilla's list of effective TLD names |