Just as a datapoint, on my machine:
socket.gethostbyname_ex('127.0.0.1')
returns
('127.0.0.1', [], ['127.0.0.1'])
whereas pprint.pprint([netifaces.ifaddresses(x).get(netifaces.AF_INET, None) for x in netifaces.interfaces()])
[[{'addr': '127.0.0.1', 'netmask': '255.0.0.0', 'peer': '127.0.0.1'}],
[{'addr': '192.168.1.2',
'broadcast': '192.168.1.255',
'netmask': '255.255.255.0'}],
None,
[{'addr': '172.16.217.1',
'broadcast': '172.16.217.255',
'netmask': '255.255.255.0'}],
[{'addr': '192.168.81.1',
'broadcast': '192.168.81.255',
'netmask': '255.255.255.0'}]]
Which seems a lot more useful.
|