- 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])
Raw Paste