我试图在 python 中创建一个算法来检测我的手机是否在该区域。我用它来查找我的设备:
蓝牙.discover_devices()
但只有当我将手机上的蓝牙设置为“可见”时,它才会检测到我的手机。
当我的手机设置为隐藏时,是否有检测我的手机的功能或命令?
我对python相当陌生,所以非常欢迎任何形式的帮助!
提前致谢!
不确定是否仍然需要解决方案(我认为这是正确的,只是没有成功)。一本名为《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)
您可以尝试连接到您的手机。如果它在附近,则连接将成功。设备在不可发现时可以连接。您必须已经知道手机的设备地址(通过手机可见时的发现)才能启动连接。