view 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
line wrap: on
line source

#!/usr/bin/env python

import netifaces
import os

def home():
    # XXX needed? better way of doing?
    return os.environ['HOME']

def ip_addresses():
    """dictionary of ip4 addresses for the machine"""
    interfaces = []
    for i in netifaces.interfaces():
        try:
            value = netifaces.ifaddresses(i).get(2)
            if value:
                interfaces.append(i)
        except ValueError:
            continue

    return dict([(i, netifaces.ifaddresses(i)[2][0]['addr'])
                 for i in interfaces
                 ])

if __name__ == '__main__':
    for name, value in sorted(ip_addresses().items()):
        print '%s : %s' % (name, value)