python绝技 — 扫描蓝牙RFCOMM信道

RFCOMM协议

  RFCOMM通过蓝牙L2CAP协议模拟了RS232串口。这会与另一台设备建立一个蓝牙连接,模拟一条普通的串行线缆,使用户能够用其他设备控制这一台设备,通过蓝牙打电话,发短信,读取手机通讯录,以及转接或上网等功能。


  我们编写一个扫描器,找出允许未经认证建立RFCOMM通道的设备。

代码

#!/usr/bin/env python
#--*--coding=utf-8--*--
#P191
#sudo pip install pybluez

import time
from bluetooth import *
def rfcommCon(addr,port):
	sock = BluetoothSocket(RFCOMM)
	try:
		sock.connect((addr,port))
		print "[+] RFCOMM port : " +str(port)+' open'
		sock.close()
	except Exception,e:
		print '[-] RFCOMM port :' +str(port)+' closed'

for port in range(1,30):
	rfcommCon('FE:XX:XX:XX:XX:57',port)

  

  思路:我们创建一个RFCOMM类型的蓝牙套接字(BluetoothSocket),接下来我们向 connect() 函数传递一个含有MAC地址和目标端口的元组。如果连接成功,即可知道目标RFCOMM通道是否开发并是否处于监听状态。如果函数抛出异常,说明无法建立连接。

运行结果

原文地址:https://www.cnblogs.com/ssooking/p/6109150.html