Getting Local MAC Address

Frank Millman frank at chagford.com
Sat Apr 3 08:25:26 CEST 2010


"Booter" <colo.avs96 at gmail.com> wrote in message 
news:ec6d247c-a6b0-4f33-a36b-1d33eace642f at k19g2000yqn.googlegroups.com...
> 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('-',':')
                break
    else:
#       mac = os.popen("/sbin/ifconfig|grep Ether|awk {'print 
$5'}").read()[:-1]
        for line in os.popen("/sbin/ifconfig"):
            if 'Ether' in line:
                mac = line.split()[4]
                break
    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.

HTH

Frank Millman





More information about the Python-list mailing list