1

我试图在 python 中创建一个算法来检测我的手机是否在该区域。我用它来查找我的设备:

蓝牙.discover_devices()

但只有当我将手机上的蓝牙设置为“可见”时,它才会检测到我的手机。

当我的手机设置为隐藏时,是否有检测我的手机的功能或命令?

我对python相当陌生,所以非常欢迎任何形式的帮助!

提前致谢!

4

2 回答 2

0

不确定是否仍然需要解决方案(我认为这是正确的,只是没有成功)。一本名为《Violent Python》的书在第 5 章中给出了解决方案,但我没有成功实现它。假设您只需将设备 wifi 适配器的 MAC 地址加一即可计算蓝牙 MAC。

def retBtAddr(addr):
    btAddr=str(hex(int(addr.replace(':', ''), 16) + 1))[2:]
    btAddr=btAddr[0:2]+":"+btAddr[2:4]+":"+btAddr[4:6]+":"+\
    btAddr[6:8]+":"+btAddr[8:10]+":"+btAddr[10:12]
    return btAddr

然后类似于以下内容(其中 OUI 是 BT MAC 的前 24 个字节)

def checkBluetooth(btAddr):
    btName = lookup_name(btAddr)
    if btName:
        print '[+] Detected Bluetooth Device: ' + btName
    else:
        print '[-] Failed to Detect Bluetooth Device.'

def wifiPrint(pkt):
    iPhone_OUI = 'd0:23:db'
    if pkt.haslayer(Dot11):
        wifiMAC = pkt.getlayer(Dot11).addr2
        if wifiMAC != None and iPhone_OUI == wifiMAC[:8]:
            print '[*] Detected iPhone MAC: ' + wifiMAC
            btAddr = retBtAddr(wifiMAC)
            print '[+] Testing Bluetooth MAC: ' + btAddr
            checkBluetooth(btAddr)
于 2014-03-12T18:35:23.953 回答
0

您可以尝试连接到您的手机。如果它在附近,则连接将成功。设备在不可发现时可以连接。您必须已经知道手机的设备地址(通过手机可见时的发现)才能启动连接。

于 2013-05-28T14:54:00.753 回答