从ptr记录中获取TLD?

时间:2013-02-04 22:39:15

标签: perl dns reverse-dns

  

可能重复:
  Extraction of TLD from urls and sorting domains and subdomains for each TLD file

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

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

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

如何使用perl获取此内容?

1 个答案:

答案 0 :(得分:0)

您的问题只是“如何获得ir1.fp.vip.gq1.yahoo.com的TLD,即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);
相关问题