我想知道是否有一个Perl模块会检测两个URL是否属于同一个根域,例如http://services.bestbuy.com/
和http://espanol.bestbuy.com/
都会被视为具有相同的根域。< / p>
我知道有可能使用正则表达式,但如果有一个模块有人这样做我更喜欢它!我还没有找到任何东西。
有谁知道任何好的解决方案?谢谢!
答案 0 :(得分: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";