import socket import fcntl import string import sys import exceptions def hexy(n): return "%02x" % (ord(n)) def getMAC(ifname): SIOCGIFHWADDR = 0x8927 # magic number s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) ifname = string.strip(ifname) print ifname ifr = ifname + '\0' * (32-len(ifname)) print ifr try: r= fcntl.ioctl(s.fileno(),SIOCGIFHWADDR,ifr) addr = map(hexy,r[18:24]) ret = (':'.join(map(str, addr))) except IOError, e: ret = '' return ret if __name__ == "__main__": print getMAC(sys.argv[1])