socket.gethostbyaddr() wrongly returning a DNS CNAME as the 'primary' hostname
Ned Deily
nad at acm.org
Thu Apr 28 15:34:45 EDT 2011
In article
<850c85c0-be6e-4eec-b6b1-5c79e1716f6d at glegroupsg2000goo.googlegroups.com
>, cjblaine <cjblaine at gmail.com> wrote:
> Python 2.7.1 (perhaps others)
>
> I believe this is a bug. Comments?
>
> Docs state: Return a triple (hostname, aliaslist, ipaddrlist)
> where hostname is the primary host name responding to the
> given ip_address, aliaslist is a (possibly empty) list of
> alternative host names for the same address, and ipaddrlist
> is a list of IPv4/v6 addresses for the same interface on the
> same host (most likely containing only a single address).
>
> my-dns-cname.our.org is a CNAME record for primary.our.org
> primary.our.org has IP address xx.xx.xx.xx
>
> import socket
> socket.gethostbyaddr('xx.xx.xx.xx')
>
> returns:
>
> ('my-dns-cname.our.org', ['primary.our.org'], ['xx.xx.xx.xx'])
socket.gethostbyaddr() is pretty much just a transparent wrapper around
the platform's C library function of the same name. See if a simple C
program with a similar call to gethostbyaddr produces the same results.
The code in question for Python 2.7 is here:
http://hg.python.org/cpython/file/a6b772599594/Modules/socketmodule.c
--
Ned Deily,
nad at acm.org
More information about the Python-list
mailing list