Получение TLD из записи ptr?
Возможный дубликат:
Извлечение TLD из URL-адресов и сортировка доменов и поддоменов для каждого файла TLD
Например: выборка yahoo.com из записи PTR 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.
Нужно выбрать только "yahoo.com" из записи ptr.
Как получить это с помощью Perl?
1 ответ
Решение
Является ли ваш вопрос просто "Как получить TLD 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);