aboutsummaryrefslogtreecommitdiff
path: root/BluetoothPairedDevices.py
blob: 96d1a8db7f140944ac72fc596b5a50a7de6ee5ad (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
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