
April 14th, 2003, 10:23 PM
|
|
Junior Member
|
|
Join Date: Apr 2003
Posts: 1
Time spent in forums: < 1 sec
Reputation Power: 0
|
|
|
Try this:
import socket
import fcntl
import string
import sys
import exceptions
def getINTF():
f = open("/proc/net/dev")
ret = []
iflist = f.readlines()
f.close()
for line in iflist:
if ':' not in line:
continue
words=string.split(line,':')
ifname, rest = words[0],words[1:]
ifname = string.strip(ifname)
ret.append(ifname)
return ret
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)
ifr = ifname + '\0'*(32-len(ifname))
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
list = getINTF()
for i in list:
print i, getIP(i), getMAC(i), getUP(i)
|