aboutsummaryrefslogtreecommitdiff
path: root/BluetoothPairedDevices.py
blob: 4cf0c2ba54ce19d6c2c43090feae438ddc65bbd0 (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
import sys
import re
import os

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


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