aboutsummaryrefslogtreecommitdiff
path: root/BluetoothPairedDevices.py
blob: 6f9f673d2d1fa302e8d1eff82995bcd9d6bba694 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/python

import sys 
import re
import os


def ParrotZikMac():
		p = re.compile('90:03:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}')
		if sys.platform == "linux2":
			out = os.popen("bluez-test-device list").read()
			res = p.findall(out)
			if len(res)>0:
				return res[0]

		elif sys.platform == "darwin":
			fd = open("/Library/Preferences/com.apple.Bluetooth.plist", "rb")
			plist = binplist.BinaryPlist(file_obj=fd)
			parsed_plist = plist.Parse()
			try :
				for mac in parsed_plist['PairedDevices']:
					if p.match(mac.replace("-",":")):
						return mac.replace("-",":")
			except:
				pass	

		elif sys.platform == "win32":
			aReg = _winreg.ConnectRegistry(None,_winreg.HKEY_LOCAL_MACHINE)
			aKey = _winreg.OpenKey(aReg, 'SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Devices')
			for i in range(10):
				try:
					asubkey_name=_winreg.EnumKey(aKey,i)
					mac =':'.join(asubkey_name[i:i+2] for i in range(0,12,2))
					res = p.findall(mac)
					if len(res)>0:
						return res[0]

				except EnvironmentError:
					pass

if sys.platform == "darwin":
	from binplist import binplist
elif sys.platform == "win32":
	import _winreg