Я пытаюсь написать скрипт Perl, который проверяет, существует ли имя устройства в DNS, а если нет, оно печатает имя устройства. В настоящее время это, как я могу это сделать:Имя устройства DNS-тест
my $host_result = `host $device`;
my @host_result = split(/ /, $host_result);
my $dns = $host_result[0];
# host normally puts out something like this if there is an error:
# Host blah not found: 3(NXDOMAIN)
# So I check to see if the first word is 'Host'
if ($dns eq "Host") {
print $device;
}
Как вы можете видеть, я использую host
команду системы, чтобы сделать это. В частности, я проверяю, может ли host
найти имя устройства или нет.
Я знаю, что это не цель host
, и я не хочу использовать системные вызовы, если только мне это не нужно, поэтому я надеялся, что кто-то может указать мне на модуль Perl, который позволяет мне проверять эти устройства имена по DNS. Я предполагаю, что Net::DNS, но что конкретно в Net :: DNS следует использовать для этого?
I Googled around, но мне сложно найти что-либо, потому что я не знаю, что искать (это DNS-запрос или разрешение DNS?), Потому что у меня есть только базовое понимание DNS и относящаяся к нему терминология.
Кроме того, я передаю много имен устройств, поэтому любые советы о том, как ускорить проверку, приветствуются!
Отлично! Я использовал его раньше, и он не работал. Однако ваше использование 'say' заставило меня понять, что я должен, вероятно,« chomp' мои строки, прежде чем проверять их, и теперь это работает! –
Если у вас все еще есть, можете ли вы разместить свой бенчмаркинг? –
@AustinMoore Смотрите мое последнее изменение. – ThisSuitIsBlackNot