annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
abb358e2434c initial commit of silvermirror, from http://my-svn.assembla.com/svn/arbez/silvermirror
k0s <k0scist@gmail.com>
parents:
diff changeset
1 #!/usr/bin/env python
abb358e2434c initial commit of silvermirror, from http://my-svn.assembla.com/svn/arbez/silvermirror
k0s <k0scist@gmail.com>
parents:
diff changeset
2
abb358e2434c initial commit of silvermirror, from http://my-svn.assembla.com/svn/arbez/silvermirror
k0s <k0scist@gmail.com>
parents:
diff changeset
3 import netifaces
abb358e2434c initial commit of silvermirror, from http://my-svn.assembla.com/svn/arbez/silvermirror
k0s <k0scist@gmail.com>
parents:
diff changeset
4 import os
abb358e2434c initial commit of silvermirror, from http://my-svn.assembla.com/svn/arbez/silvermirror
k0s <k0scist@gmail.com>
parents:
diff changeset
5
abb358e2434c initial commit of silvermirror, from http://my-svn.assembla.com/svn/arbez/silvermirror
k0s <k0scist@gmail.com>
parents:
diff changeset
6 def home():
abb358e2434c initial commit of silvermirror, from http://my-svn.assembla.com/svn/arbez/silvermirror
k0s <k0scist@gmail.com>
parents:
diff changeset
7 # XXX needed? better way of doing?
abb358e2434c initial commit of silvermirror, from http://my-svn.assembla.com/svn/arbez/silvermirror
k0s <k0scist@gmail.com>
parents:
diff changeset
8 return os.environ['HOME']
abb358e2434c initial commit of silvermirror, from http://my-svn.assembla.com/svn/arbez/silvermirror
k0s <k0scist@gmail.com>
parents:
diff changeset
9
abb358e2434c initial commit of silvermirror, from http://my-svn.assembla.com/svn/arbez/silvermirror
k0s <k0scist@gmail.com>
parents:
diff changeset
10 def ip_addresses():
abb358e2434c initial commit of silvermirror, from http://my-svn.assembla.com/svn/arbez/silvermirror
k0s <k0scist@gmail.com>
parents:
diff changeset
11 """dictionary of ip4 addresses for the machine"""
11
0c11c8102fba more robust way of getting interfaces
k0s <k0scist@gmail.com>
parents: 0
diff changeset
12 interfaces = []
0c11c8102fba more robust way of getting interfaces
k0s <k0scist@gmail.com>
parents: 0
diff changeset
13 for i in netifaces.interfaces():
0c11c8102fba more robust way of getting interfaces
k0s <k0scist@gmail.com>
parents: 0
diff changeset
14 try:
0c11c8102fba more robust way of getting interfaces
k0s <k0scist@gmail.com>
parents: 0
diff changeset
15 value = netifaces.ifaddresses(i).get(2)
0c11c8102fba more robust way of getting interfaces
k0s <k0scist@gmail.com>
parents: 0
diff changeset
16 if value:
0c11c8102fba more robust way of getting interfaces
k0s <k0scist@gmail.com>
parents: 0
diff changeset
17 interfaces.append(i)
0c11c8102fba more robust way of getting interfaces
k0s <k0scist@gmail.com>
parents: 0
diff changeset
18 except ValueError:
0c11c8102fba more robust way of getting interfaces
k0s <k0scist@gmail.com>
parents: 0
diff changeset
19 continue
0c11c8102fba more robust way of getting interfaces
k0s <k0scist@gmail.com>
parents: 0
diff changeset
20
0
abb358e2434c initial commit of silvermirror, from http://my-svn.assembla.com/svn/arbez/silvermirror
k0s <k0scist@gmail.com>
parents:
diff changeset
21 return dict([(i, netifaces.ifaddresses(i)[2][0]['addr'])
11
0c11c8102fba more robust way of getting interfaces
k0s <k0scist@gmail.com>
parents: 0
diff changeset
22 for i in interfaces
0
abb358e2434c initial commit of silvermirror, from http://my-svn.assembla.com/svn/arbez/silvermirror
k0s <k0scist@gmail.com>
parents:
diff changeset
23 ])
abb358e2434c initial commit of silvermirror, from http://my-svn.assembla.com/svn/arbez/silvermirror
k0s <k0scist@gmail.com>
parents:
diff changeset
24
abb358e2434c initial commit of silvermirror, from http://my-svn.assembla.com/svn/arbez/silvermirror
k0s <k0scist@gmail.com>
parents:
diff changeset
25 if __name__ == '__main__':
abb358e2434c initial commit of silvermirror, from http://my-svn.assembla.com/svn/arbez/silvermirror
k0s <k0scist@gmail.com>
parents:
diff changeset
26 for name, value in sorted(ip_addresses().items()):
abb358e2434c initial commit of silvermirror, from http://my-svn.assembla.com/svn/arbez/silvermirror
k0s <k0scist@gmail.com>
parents:
diff changeset
27 print '%s : %s' % (name, value)