comparison silvermirror/utils.py @ 11:0c11c8102fba

more robust way of getting interfaces
author k0s <k0scist@gmail.com>
date Wed, 17 Feb 2010 16:17:25 +0000
parents abb358e2434c
children d081ca2e8696
comparison
equal deleted inserted replaced
10:c69fb6d00ece 11:0c11c8102fba
7 # XXX needed? better way of doing? 7 # XXX needed? better way of doing?
8 return os.environ['HOME'] 8 return os.environ['HOME']
9 9
10 def ip_addresses(): 10 def ip_addresses():
11 """dictionary of ip4 addresses for the machine""" 11 """dictionary of ip4 addresses for the machine"""
12 interfaces = []
13 for i in netifaces.interfaces():
14 try:
15 value = netifaces.ifaddresses(i).get(2)
16 if value:
17 interfaces.append(i)
18 except ValueError:
19 continue
20
12 return dict([(i, netifaces.ifaddresses(i)[2][0]['addr']) 21 return dict([(i, netifaces.ifaddresses(i)[2][0]['addr'])
13 for i in netifaces.interfaces() 22 for i in interfaces
14 if netifaces.ifaddresses(i).get(2)
15 ]) 23 ])
16 24
17 if __name__ == '__main__': 25 if __name__ == '__main__':
18 for name, value in sorted(ip_addresses().items()): 26 for name, value in sorted(ip_addresses().items()):
19 print '%s : %s' % (name, value) 27 print '%s : %s' % (name, value)