-1

可能重复:
从 url 中提取 TLD 并对每个 TLD 文件的域和子域进行排序

例如:从PTR记录45.36.190.206.in-addr.arpa域名指针ir1.fp.vip.gq1中获取yahoo.com。雅虎网

我正在使用 Net::Nslookup;nslookup(主机=>“206.190.36.45”,类型=>“PTR”);返回 ir1.fp.vip.gq1.yahoo.com。

只需从 ptr 记录中获取“yahoo.com”。

如何使用 perl 获取这个?

4

1 回答 1

0

您的问题仅仅是“如何获得 的顶级域名ir1.fp.vip.gq1.yahoo.com,即yahoo.com?”

use Domain::PublicSuffix qw( );

my $dps = Domain::PublicSuffix->new();

my $host = 'ir1.fp.vip.gq1.yahoo.com';

$host =~ s/\.\z//;  # D::PS doesn't handle "domain.com.".
my $root = $dps->get_root_domain($host)
   or die $dps->error();

say $root;

顺便说一句,您可以使用内置/系统调用gethostbyaddr来获取 PTR 记录。

use Socket qw( inet_aton AF_INET );
my $host = gethostbyaddr(inet_aton("206.190.36.45"), AF_INET);
于 2013-02-04T23:25:21.820 回答