NAME

Data::Tranco - An interface to the Tranco domain list.

VERSION

version 0.001

SYNOPSIS

use Data::Tranco;

# get a random domain from the list
$domain = Data::Tranco->random_domain;

# get a random domain from the list with a specific suffix
$domain = Data::Tranco->random_domain("org");

# get the highest ranking domain
$domain = Data::Tranco->top_domain;

# get the highest ranking domain from the list with a specific suffix
$domain = Data::Tranco->top_domain("co.uk");

DESCRIPTION

Data::Tranco provides an interface to the Tranco list of popular domain names.

METHODS

RANDOM DOMAIN

$domain = Data::Tranco->random_domain($suffix);

Returns a randomly-selected domain from the list. If $suffix is specified, then only a domain that ends with that suffix will be returned.

TOP DOMAIN

$domain = Data::Tranco->top_domain($suffix);

Returns the highest-ranking domain from the list. If $suffix is specified, then the highest-ranking domain that ends with that suffix will be returned.

IMPLEMENTATION

The Tranco list is published as a zip-compressed CSV file. By default, Data::Tranco will automatically download that file, extract the CSV file, and write it to an SQLite database if (a) the file doesn't exist yet or (b) it's more than a day old.

If you want to control this behaviour, you can use the following:

$Data::Tranco::TTL

This is how old the local file can be (in seconds) before it is updated. It is 86400 seconds by default.

$Data::Tranco::STATIC

If you set this value to 1 then Data::Tranco will not update the database.

Data::Tranco->update_db

This will force an update to the database.

AUTHOR

Gavin Brown <gavin.brown@icann.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2024 by Internet Corporation for Assigned Names and Numbers (ICANN).

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.