Want To Get Mac Address Of Remote Pc
I have my web page in python, I am able to get the IP address of the user, who will be accessing our web page, we want to get the mac address of the user's PC, is it possible in py
Solution 1:
I have a small, signed Java Applet, which requires Java 6 runtime on the remote computer to do this. It uses the getHardwareAddress() method on NetworkInterface to obtain the MAC address. I use javascript to access a method in the applet that calls this and returns a JSON object containing the address. This gets stuffed into a hidden field in the form and posted with the rest of the fields.
Solution 2:
#!/usr/bin/env pythonimport ctypes
import socket
import struct
defget_macaddress(host):
""" Returns the MAC address of a network host, requires >= WIN2K. """# Check for api availabilitytry:
SendARP = ctypes.windll.Iphlpapi.SendARP
except:
raise NotImplementedError('Usage only on Windows 2000 and above')
# Doesn't work with loopbacks, but let's try and help.if host == '127.0.0.1'or host.lower() == 'localhost':
host = socket.gethostname()
# gethostbyname blocks, so use it wisely.try:
inetaddr = ctypes.windll.wsock32.inet_addr(host)
if inetaddr in (0, -1):
raise Exception
except:
hostip = socket.gethostbyname(host)
inetaddr = ctypes.windll.wsock32.inet_addr(hostip)
buffer = ctypes.c_buffer(6)
addlen = ctypes.c_ulong(ctypes.sizeof(buffer))
if SendARP(inetaddr, 0, ctypes.byref(buffer), ctypes.byref(addlen)) != 0:
raise WindowsError('Retreival of mac address(%s) - failed' % host)
# Convert binary data into a string.
macaddr = ''for intval in struct.unpack('BBBBBB', buffer):
if intval > 15:
replacestr = '0x'else:
replacestr = 'x'
macaddr = ''.join([macaddr, hex(intval).replace(replacestr, '')])
return macaddr.upper()
if __name__ == '__main__':
print'Your mac address is %s' % get_macaddress('localhost')
Solution 3:
Solution 4:
The dpkt package was already mentioned on SO. It allows for parsing TCP/IP packets. I have not yet used it for your case, though.
Post a Comment for "Want To Get Mac Address Of Remote Pc"