in reply to Re: Retrieving all hostnames for an IP address...
in thread Retrieving all hostnames for an IP address...

There is one and only one PTR record for a given IP

Not on this planet.

use strict; use Socket; my $addr = shift || '172.17.0.1'; my ($name,$aliases) = gethostbyaddr(inet_aton($addr), AF_INET); print "address $addr has the following names:\n"; print "\t$_\n" for ($name, split / /, $aliases);

When run against my DNS server, produces:

address 172.17.0.1 has the following names: host1.example.com host2.example.com host3.example.com host4.example.com host5.example.com

In other words, a PTR lookup can return a result set of more than one record. Many buggy applications make the invalid assumption that no more than one result will be returned. But of course, no Perlmonk ever would :)

gethostbyaddr is a bit naughty by referring to one as the name, and the others, aliases. According the the RFC (if I remember correctly, it's been a while), they are all equally "at the same level". It's up to the application to sift through them and find the one that suits its needs.

• another intruder with the mooring in the heart of the Perl

Replies are listed 'Best First'.
Re^3: Retrieving all hostnames for an IP address...
by Fletch (Bishop) on Dec 13, 2006 at 20:07 UTC

    Technically yes DNS allows multiple PTR RRs to be returned for a single query. However the General Consensus from the DNS types (search an archive of comp.protocols.dns.bind, for example here or here; look enough and you'll see threats to put together a "Best Practices" comdemnation of it) is still that you shouldn't do that because pretty much everything is written with the expectation that PTRs map to a single A record. There's also the problem that it's possible (with a sufficiently hostname-ful IP) to have more PTR RRs than can be returned in a single UDP packet. And I can't say that I've personally ever seen it happen in the wild in 15+ years of varying degrees of sysadmining.

    Sure, you can do it; you can also use a pickaxe to poke speed holes in your car's hood. Neither of them really are going to be of much practical benefit.