Getting Local MAC Address

Frank Millman frank at
Sat Apr 3 02:25:26 EDT 2010

"Booter" <colo.avs96 at> wrote in message 
news:ec6d247c-a6b0-4f33-a36b-1d33eace642f at
> Hello all,
> I am new to python ans was wondering if there was a way to get the mac
> address from the local NIC?
> Thanks for your help.
> Gerad

This is what I use -

def get_mac_address():
    if sys.platform == 'win32':
        for line in os.popen("ipconfig /all"):
            if line.lstrip().startswith('Physical Address'):
                mac = line.split(':')[1].strip().replace('-',':')
#       mac = os.popen("/sbin/ifconfig|grep Ether|awk {'print 
        for line in os.popen("/sbin/ifconfig"):
            if 'Ether' in line:
                mac = line.split()[4]
    return mac


I only target windows and linux. I don't know if it works for all platforms.

I wrote this a long time ago. I think it would now be preferable to use 
subprocess() instead of os.popen().

Note the commented-out line in the linux block. This is an alternative 
method I cribbed from somewhere. Not as readable, but probably faster.


Frank Millman

More information about the Python-list mailing list