Обратный поиск DNS в жемчуге

Нет, ваш список не является узлом *. список просто класс. То, что вы делаете, это присваиваете объект класса узлу *.

node * search(node* l, int value) {
    node * p;
    for (p = l; p != NULL; p = p -> next) {
        if (p -> data == value) return p;
    }
    return NULL;
}
12
задан Joakim 17 September 2008 в 17:14
поделиться

7 ответов

gethostbyaddr и подобные вызовы. См. http://perldoc.perl.org/functions/gethostbyaddr.html

20
ответ дан 2 December 2019 в 02:56
поделиться
use Socket;
$iaddr = inet_aton("127.0.0.1"); # or whatever address
$name  = gethostbyaddr($iaddr, AF_INET);
14
ответ дан 2 December 2019 в 02:56
поделиться

Если Вам нужно более подробное использование информации о DNS Сеть:: модуль DNS , вот пример:

use Net::DNS;
my $res = Net::DNS::Resolver->new;

# create the reverse lookup DNS name (note that the octets in the IP address need to be reversed).
my $IP = "209.85.173.103";
my $target_IP = join('.', reverse split(/\./, $IP)).".in-addr.arpa";

my $query = $res->query("$target_IP", "PTR");

if ($query) {
  foreach my $rr ($query->answer) {
    next unless $rr->type eq "PTR";
    print $rr->rdatastr, "\n";
  }
} else {
  warn "query failed: ", $res->errorstring, "\n";
}

Первоисточник EliteHackers.info, больше деталей там также.

20
ответ дан 2 December 2019 в 02:56
поделиться

Если gethostbyaddr не соответствует Вашим потребностям, Сеть:: DNS более гибок.

1
ответ дан 2 December 2019 в 02:56
поделиться

Может быть более легкий путь, но для IPv4, если можно выполнить обычные поиски DNS, можно всегда создавать обратный запрос сами. Поскольку IPv4 обращается к A.B.C.D, ищет любые записи PTR в D.C.B.A.in-addr.arpa. Для IPv6 Вы берете 128 шестнадцатеричного откусывания и зеркально отражаете их вокруг и добавляете ipv6.arpa. и сделайте то же самое.

1
ответ дан 2 December 2019 в 02:56
поделиться

Это могло бы быть полезно...

$ip = "XXX.XXX.XXX.XXX" # IPV4 address.
my @numbers = split (/\./, $ip);
if (scalar(@numbers) != 4)
{
    print "$ip is not a valid IP address.\n";
    next;
}
my $ip_addr = pack("C4", @numbers);
# First element of the array returned by gethostbyaddr is host name.
my ($name) = (gethostbyaddr($ip_addr, 2))[0];
0
ответ дан 2 December 2019 в 02:56
поделиться

однострочный:

perl -MSocket -E 'say scalar gethostbyaddr(inet_aton("79.81.152.79"), AF_INET)'
2
ответ дан 2 December 2019 в 02:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: