perl ip lookup nslookup reverse-dns

Buscar DNS inversa en perl



ip lookup (8)

Puede haber una manera más sencilla, pero para IPv4, si puede realizar búsquedas DNS normales, siempre puede construir la consulta inversa usted mismo. Para la dirección IPv4 ABCD, busque cualquier registro PTR en DCBAin-addr.arpa. Para IPv6, tomas los 128 bits hexadecimales y los volteas y anexas ipv6.arpa. y haz lo mismo

¿Cómo realizo una búsqueda DNS inversa, así es como resuelvo una dirección IP a su nombre de host DNS en Perl?


Si gethostbyaddr no se ajusta a sus necesidades, Net :: DNS es más flexible.



use Socket; $iaddr = inet_aton("127.0.0.1"); # or whatever address $name = gethostbyaddr($iaddr, AF_INET);


Esto podría ser útil ...

$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];


Si necesita información DNS más detallada, use el módulo Net :: DNS , aquí hay un ejemplo:

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"; }

Fuente original EliteHackers.info , más detalles allí también.


un trazador de líneas:

perl -MSocket -E ''say scalar gethostbyaddr(inet_aton("79.81.152.79"), AF_INET)''


perl -MSocket -E ''say scalar gethostbyaddr(inet_aton("69.89.27.250"), AF_INET)''

Devuelve: no se puede encontrar el terminador de cadena "''" en cualquier lugar antes de EOF en -e línea 1.

perl -MSocket -E "say scalar gethostbyaddr(inet_aton(/"69.89.27.250/"), AF_INET)"

Devoluciones: box250.bluehost.com

Tengo que cambiar la línea para usar comillas dobles y luego escapar las comillas alrededor de la dirección IP