Perl模块比较两个URL的根域

时间:2012-06-08 01:36:19

标签: perl url module dns

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

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

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

1 个答案:

答案 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";