1

我想知道是否有一个 Perl 模块可以检测两个 URL 是否属于同一个根域,例如http://services.bestbuy.com/http://espanol.bestbuy.com/它们都将被视为具有相同的根域。

我知道使用正则表达式是可能的,但如果已经有一个模块可以做到这一点,我会更喜欢它!我还没有找到任何东西。

有谁知道任何好的解决方案?谢谢!

4

1 回答 1

2

我会使用Domain::PublicSuffix

use feature qw( say state );

use Domain::PublicSuffix qw( );
use URI                  qw( );

# Accepts urls as strings and as URI objects.
sub url_root_domain {
   my ($abs_url) = @_;
   state $parser = Domain::PublicSuffix->new();
   return $parser->get_root_domain( URI->new($abs_url)->host );
}

my $url1 = 'http://services.bestbuy.com/';
my $url2 = 'http://espanol.bestbuy.com/';

say url_root_domain($url1) eq url_root_domain($url2) ? "same" : "diff";
于 2012-06-08T04:31:55.443 回答