A possible solution using Perl:
use Domain::PublicSuffix qw( );
my $dps = Domain::PublicSuffix->new();
for my $host (qw(
www.google.com
foo.bar.google.com
www.google.co.uk
foo.bar.google.co.uk
)) {
my $root = $dps->get_root_domain($host)
or die $dps->error();
say $root;
}
Output:
google.com
google.com
google.co.uk
google.co.uk