我试图在python中创建一个算法来检测我的手机是否在该区域。我用它来找到我的设备:
bluetooth.discover_devices()
但如果我将手机上的蓝牙设置为“可见”,它只会检测到我的手机。
当手机设置为隐藏时,是否有检测手机的功能或命令?
我对python很新,所以非常欢迎任何形式的帮助!
提前致谢!
答案 0 :(得分:0)
您可以尝试连接手机。如果它在附近,连接将成功。设备无法被发现时可以连接。您必须已经知道手机的设备地址(通过手机可见时发现)才能启动连接。
答案 1 :(得分:0)
不确定是否仍然需要解决方案(我认为这是正确的,只是没有成功)。一本名为“Violent Python”的书在第5章给出了解决方案,但我没有成功实现它。据说你只需要将设备wifi适配器的MAC地址增加1来计算蓝牙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)