Вдохновленный примером оболочки, показанным в другом ответе, я решил, что версия Perl мне подходит лучше, поэтому я создал этот файл «batch_dns_by_ip.pl». Вы поместите список IP-адресов в текстовый файл, который будет транслироваться в программу.
Код должен выглядеть так, и вы захотите сделать исполняемый файл:
#!/usr/bin/perl
use strict;
my @domains;
my $address;
while (<>)
{
chomp;
$address = $_;
$address =~ s/ *//g;
@domains = ();
@domains=`dig -x "$address" +short`;
chomp(@domains);
if ("$domains[0]" eq "")
{
$domains[0] = "NULL";
}
printf("addr: %15s names: %s", $address, $domains[0]);
if ("$domains[1]" eq "")
{
print "\n";
}
else
{
printf(", %s\n", $domains[1]);
}
}
Запуск может выглядеть так:
$ cat myips | ./batch_dns_by_ip.pl
addr: 216.58.219.238 names: lga25s41-in-f14.1e100.net., lga25s41-in-f238.1e100.net.
addr: 151.101.129.69 names: NULL
addr: 8.8.8.8 names: google-public-dns-a.google.com.
addr: 10.49.11.62 names: nyalbdnsvip01.miscny.nyenet., nyalbcwgbvip01-vlan401.miscny.nyenet.
addr: 69.172.201.153 names: NULL
Надеюсь, что это поможет!