from scapy.all import *alarm_map= {"211": "未系安全带", "205": "疲劳驾驶", "206": "疲劳驾驶", "208": "抽烟", "209": "出现异常"}defscan(target, port):
has_no_connect=TruewhileTrue:#根据接口进行监听报文
#接口获取由 IFACES 决定
try:#sniff开始获取报文,iface是接口,filter可以选择过滤报文类型, count为一次性获取多少个pkt
pkt = sniff(iface=IFACES.dev_from_index(12), filter="udp", count=1)#每个pkt格式类型于YAML,如果没有IP信息则代表这个包不完整
if pkt[0][IP].src == "192.168.43.1":ifhas_no_connect:#展示建立连接的第一个UDP包
pkt[0].show()if Raw inpkt[0]:
has_no_connect=False#load的值为bytes类型
body =pkt[0][Raw].loadif b'alarm":2' inbody:
result=json.loads(body.decode())if str(result.get('dms').get('alarm')) inalarm_map.keys():
now_time= datetime.datetime.now().strftime('%Y%m%d%H%M%