New submission from Nick Carboni:

socket.gethostbyaddr seems to be equating loopback addresses regardless of IP 
protocol version.

In both versions tested (2.7.5 and 3.4.3) the ordering of the entries in my 
/etc/hosts file determines the result I get, rather than what address I'm 
querying for.

For example:


::1         localhost localhost.localdomain localhost6 localhost6.localdomain6   localhost localhost.localdomain localhost4 localhost4.localdomain4


>>> import socket
>>> socket.gethostbyaddr("")
('localhost', ['localhost.localdomain', 'localhost6', 
'localhost6.localdomain6'], [''])

Then if I change the ordering of the entries in /etc/hosts as follows:   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6


>>> import socket
>>> socket.gethostbyaddr("")
('localhost', ['localhost.localdomain', 'localhost4', 
'localhost4.localdomain4'], [''])

I would expect gethostbyaddr to return only the hostnames associated with the 
given address regardless of the ordering of the entries in /etc/hosts.

messages: 278580
nosy: carbonin
priority: normal
severity: normal
status: open
title: socket gethostbyaddr returns IPv6 names for
type: behavior
versions: Python 2.7, Python 3.4

Python tracker <>
Python-bugs-list mailing list

Reply via email to