pyshark安装使用,ubuntu:20.04
1.容器创建
命令 docker run -d --name pyshark -v D:\src:/root/share ubuntu:2004 /bin/bash -c "while true;do sleep 1000;done" 用于创建并启动一个新的 Docker 容器。
docker run -d --name pyshark -v D:\src:/root/share ubuntu:2004 /bin/bash -c "while true;do sleep 1000;done"
5bd3f36da18ef4cf158ef021ed411a53cb5b5ea65e306c6c03025e26b1f5553c
2.进入容器
命令 docker exec -it pyshark /bin/bash 用于进入一个正在运行的 Docker 容器,并启动一个交互式的 Bash shell 会话
docker exec -it pyshark /bin/bash
3.更新安装
apt update
作用:更新软件包列表。
解释:apt update 命令会从配置的软件源(通常是 /etc/apt/sources.list 和 /etc/apt/sources.list.d/ 目录下的文件)获取最新的软件包信息,并更新本地的软件包索引。这是安装新软件包或升级现有软件包之前的一个必要步骤。
apt install -y python3-pip
作用:安装 python3-pip 包。
解释:
apt install 命令用于安装指定的软件包。
-y 标志表示自动确认所有提示(即自动回答“是”),这样可以避免在自动化脚本中出现交互式提示。
python3-pip 是 Python 3 的 pip 包管理器。pip 是一个用于安装和管理 Python 包的工具。
pip install pyshark
作用:使用 pip 安装 pyshark 库。
解释:
pip 是 Python 的包管理器,用于安装和管理 Python 包。
install 命令用于安装指定的包。
pyshark 是一个 Python 库,用于解析网络数据包,它依赖于 libpcap 和 tshark(Wireshark 的命令行工具)。
apt update
apt install -y python3-pip
pip install pyshark
4.安装tshark,时区选择亚洲上海(6和70),后面yes,即非root可以运行。
apt update
apt install -y tshark


到此安装完成
解析pcap文件(下载链接)【免费】mqtt等协议的pcap文件资源-CSDN文库
python代码
import pyshark# 读取PCAP文件
pcap_file = 'exported_tr01.pcap' # 替换为你的PCAP文件路径
cap = pyshark.FileCapture(pcap_file)# 遍历数据包并提取FTP数据包
mqtt_packets = []
for packet in cap:if 'MQTT' in packet:mqtt_packets.append(packet)# 输出FTP数据包
for mqtt_packet in mqtt_packets:print(mqtt_packet)
结果:


命令:tshark -r exported_tr01.pcap -Y "mqtt"
root@5bd3f36da18e:~/share/tshark_py# tshark -r exported_tr01.pcap -Y "mqtt"
Running as user "root" and group "root". This could be dangerous.4 0.096000 10.21.56.15 ? 8.137.154.246 MQTT 91 Connect Command6 0.149000 8.137.154.246 ? 10.21.56.15 MQTT 58 Connect Ack9 0.396000 8.137.154.246 ? 10.21.56.15 MQTT 58 [TCP Spurious Retransmission] , Connect Ack13 0.434000 10.21.56.15 ? 8.137.154.246 MQTT 105 Connect Command15 0.519000 8.137.154.246 ? 10.21.56.15 MQTT 58 Connect Ack17 0.787000 10.21.56.15 ? 8.137.154.246 MQTT 91 Subscribe Request (id=26163) [hello101] [hello102] [hello103]18 0.835000 8.137.154.246 ? 10.21.56.15 MQTT 61 Subscribe Ack (id=26163)19 0.835000 8.137.154.246 ? 10.21.56.15 MQTT 68 Publish Message [hello101]21 1.264000 10.21.56.15 ? 8.137.154.246 MQTT 69 Subscribe Request (id=44324) [hello103]22 1.321000 8.137.154.246 ? 10.21.56.15 MQTT 59 Subscribe Ack (id=44324)24 1.552000 10.21.56.15 ? 8.137.154.246 MQTT 69 Subscribe Request (id=44325) [hello103]25 1.615000 8.137.154.246 ? 10.21.56.15 MQTT 59 Subscribe Ack (id=44325)27 1.908000 10.21.56.15 ? 8.137.154.246 MQTT 82 Subscribe Request (id=26164) [cx001] [cx111] [cx221]28 1.968000 8.137.154.246 ? 10.21.56.15 MQTT 61 Subscribe Ack (id=26164)30 2.201000 10.21.56.15 ? 8.137.154.246 MQTT 125 Subscribe Request (id=26165) [123456789abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXY\0Z]31 2.251000 8.137.154.246 ? 10.21.56.15 MQTT 59 Subscribe Ack (id=26165)33 2.479000 10.21.56.15 ? 8.137.154.246 MQTT 65 Unsubscribe Request (id=26166)34 2.532000 8.137.154.246 ? 10.21.56.15 MQTT 58 Unsubscribe Ack (id=26166)36 2.779000 10.21.56.15 ? 8.137.154.246 MQTT 79 Unsubscribe Request (id=26167)37 2.816000 8.137.154.246 ? 10.21.56.15 MQTT 58 Unsubscribe Ack (id=26167)39 3.050000 10.21.56.15 ? 8.137.154.246 MQTT 124 Unsubscribe Request (id=26168)40 3.128000 8.137.154.246 ? 10.21.56.15 MQTT 58 Unsubscribe Ack (id=26168)42 3.379000 10.21.56.15 ? 8.137.154.246 MQTT 318 Subscribe Request (id=26169)[Packet size limited during capture]43 3.436000 8.137.154.246 ? 10.21.56.15 MQTT 59 Subscribe Ack (id=26169)45 3.715000 10.21.56.15 ? 8.137.154.246 MQTT 70 Subscribe Request (id=26170) [hello103c]46 3.768000 8.137.154.246 ? 10.21.56.15 MQTT 59 Subscribe Ack (id=26170)48 3.984000 10.21.56.15 ? 8.137.154.246 MQTT 321 Subscribe Request (id=26171)[Packet size limited during capture]49 4.053000 8.137.154.246 ? 10.21.56.15 MQTT 59 Subscribe Ack (id=26171)51 4.332000 10.21.56.15 ? 8.137.154.246 MQTT 68 Unsubscribe Request (id=44326)52 4.385000 8.137.154.246 ? 10.21.56.15 MQTT 58 Unsubscribe Ack (id=44326)53 4.517000 10.21.56.15 ? 8.137.154.246 MQTT 67 Publish Message [hello103c]54 4.570000 8.137.154.246 ? 10.21.56.15 MQTT 67 Publish Message [hello103c]57 4.686000 8.137.154.246 ? 10.21.56.15 MQTT 58 [TCP Spurious Retransmission] , Unsubscribe Ack (id=44326)59 4.940000 10.21.56.15 ? 8.137.154.246 MQTT 246 Publish Message (id=26173) [hello103c][Packet size limited during capture]60 4.987000 8.137.154.246 ? 10.21.56.15 MQTT 58 Publish Ack (id=26173)61 4.987000 8.137.154.246 ? 10.21.56.15 MQTT 244 Publish Message [hello103c][Packet size limited during capture]63 5.341000 10.21.56.15 ? 8.137.154.246 MQTT 1037 Publish Message (id=26174) [hello103c][Packet size limited during capture] 64 5.435000 8.137.154.246 ? 10.21.56.15 MQTT 1039 Publish Ack (id=26174), Publish Message [hello103c][Packet size limited during capture]66 5.742000 10.21.56.15 ? 8.137.154.246 MQTT 1454 Publish Message (id=26175) [hello103c][Malformed Packet: length of contained item exceeds length of containing item]67 5.742000 10.21.56.15 ? 8.137.154.246 MQTT 663 Publish Message[Unreassembled Packet], Connect Ack69 5.809000 8.137.154.246 ? 10.21.56.15 MQTT 58 Publish Ack (id=26175)70 5.810000 8.137.154.246 ? 10.21.56.15 MQTT 1454 Publish Message [hello103c][Malformed Packet: length of contained item exceeds length of containing item]71 5.810000 8.137.154.246 ? 10.21.56.15 MQTT 661 Publish Received (id=13865), Publish Release (id=18046)74 6.042000 10.21.56.15 ? 8.137.154.246 MQTT 70 Publish Message [hello101]75 6.089000 8.137.154.246 ? 10.21.56.15 MQTT 70 Publish Message [hello101]77 6.437000 10.21.56.15 ? 8.137.154.246 MQTT 66 Publish Message [hello101]78 6.475000 8.137.154.246 ? 10.21.56.15 MQTT 66 Publish Message [hello101]80 6.722000 10.21.56.15 ? 8.137.154.246 MQTT 113 Publish Message [hello103]81 6.776000 8.137.154.246 ? 10.21.56.15 MQTT 113 Publish Message [hello103]83 7.061000 10.21.56.15 ? 8.137.154.246 MQTT 115 Publish Message (id=26179) [hello103]84 7.139000 8.137.154.246 ? 10.21.56.15 MQTT 58 Publish Ack (id=26179)85 7.139000 8.137.154.246 ? 10.21.56.15 MQTT 115 Publish Message (id=1) [hello103]87 7.208000 10.21.56.15 ? 8.137.154.246 MQTT 58 Publish Ack (id=1)89 7.346000 10.21.56.15 ? 8.137.154.246 MQTT 176 Publish Message [hello101][Packet size limited during capture]91 7.393000 8.137.154.246 ? 10.21.56.15 MQTT 176 Publish Message [hello101][Packet size limited during capture]93 7.624000 10.21.56.15 ? 8.137.154.246 MQTT 178 Publish Message (id=26181) [hello101][Packet size limited during capture]94 7.693000 8.137.154.246 ? 10.21.56.15 MQTT 58 Publish Ack (id=26181)95 7.693000 8.137.154.246 ? 10.21.56.15 MQTT 176 Publish Message [hello101][Packet size limited during capture]97 7.894000 10.21.56.15 ? 8.137.154.246 MQTT 74 Publish Message (id=26182) [hello101]98 7.947000 8.137.154.246 ? 10.21.56.15 MQTT 58 Publish Received (id=26182)99 7.947000 8.137.154.246 ? 10.21.56.15 MQTT 72 Publish Message [hello101]101 8.025000 10.21.56.15 ? 8.137.154.246 MQTT 58 Publish Release (id=26182)102 8.079000 8.137.154.246 ? 10.21.56.15 MQTT 58 Publish Complete (id=26182)104 8.179000 10.21.56.15 ? 8.137.154.246 MQTT 178 Publish Message (id=26183) [hello101][Packet size limited during capture]105 8.248000 8.137.154.246 ? 10.21.56.15 MQTT 58 Publish Received (id=26183)106 8.248000 8.137.154.246 ? 10.21.56.15 MQTT 176 Publish Message [hello101][Packet size limited during capture]108 8.316000 10.21.56.15 ? 8.137.154.246 MQTT 58 Publish Release (id=26183)109 8.363000 8.137.154.246 ? 10.21.56.15 MQTT 58 Publish Complete (id=26183)111 8.464000 10.21.56.15 ? 8.137.154.246 MQTT 176 Publish Message [hello102][Packet size limited during capture]112 8.511000 8.137.154.246 ? 10.21.56.15 MQTT 176 Publish Message [hello102][Packet size limited during capture]114 8.742000 10.21.56.15 ? 8.137.154.246 MQTT 178 Publish Message (id=26185) [hello102][Packet size limited during capture]115 8.811000 8.137.154.246 ? 10.21.56.15 MQTT 58 Publish Ack (id=26185)116 8.811000 8.137.154.246 ? 10.21.56.15 MQTT 178 Publish Message (id=2) [hello102][Packet size limited during capture]118 8.896000 10.21.56.15 ? 8.137.154.246 MQTT 58 Publish Ack (id=2)120 9.065000 10.21.56.15 ? 8.137.154.246 MQTT 73 Publish Message (id=26186) [hello102]122 9.128000 8.137.154.246 ? 10.21.56.15 MQTT 58 Publish Received (id=26186)123 9.128000 8.137.154.246 ? 10.21.56.15 MQTT 73 Publish Message (id=3) [hello102]125 9.202000 10.21.56.15 ? 8.137.154.246 MQTT 58 Publish Release (id=26186)126 9.212000 10.21.56.15 ? 8.137.154.246 MQTT 58 Publish Ack (id=3)127 9.243000 8.137.154.246 ? 10.21.56.15 MQTT 58 Publish Complete (id=26186)130 9.572000 10.21.56.15 ? 8.137.154.246 MQTT 178 Publish Message (id=26187) [hello102][Packet size limited during capture]132 9.625000 8.137.154.246 ? 10.21.56.15 MQTT 58 Publish Received (id=26187)133 9.625000 8.137.154.246 ? 10.21.56.15 MQTT 178 Publish Message (id=4) [hello102][Packet size limited during capture]135 9.710000 10.21.56.15 ? 8.137.154.246 MQTT 58 Publish Release (id=26187)136 9.725000 10.21.56.15 ? 8.137.154.246 MQTT 58 Publish Ack (id=4)138 9.768000 8.137.154.246 ? 10.21.56.15 MQTT 58 Publish Complete (id=26187)139 9.850000 10.21.56.15 ? 8.137.154.246 MQTT 176 Publish Message [hello103][Packet size limited during capture]140 9.925000 8.137.154.246 ? 10.21.56.15 MQTT 176 Publish Message [hello103][Packet size limited during capture]141 10.126000 10.21.56.15 ? 8.137.154.246 MQTT 178 Publish Message (id=26189) [hello103][Packet size limited during capture]142 10.195000 8.137.154.246 ? 10.21.56.15 MQTT 58 Publish Ack (id=26189)143 10.195000 8.137.154.246 ? 10.21.56.15 MQTT 178 Publish Message (id=5) [hello103][Packet size limited during capture]145 10.273000 10.21.56.15 ? 8.137.154.246 MQTT 58 Publish Ack (id=5)147 10.411000 10.21.56.15 ? 8.137.154.246 MQTT 178 Publish Message (id=26190) [hello103][Packet size limited during capture]149 10.474000 8.137.154.246 ? 10.21.56.15 MQTT 58 Publish Received (id=26190)150 10.474000 8.137.154.246 ? 10.21.56.15 MQTT 178 Publish Message (id=6) [hello103][Packet size limited during capture]152 10.558000 10.21.56.15 ? 8.137.154.246 MQTT 58 Publish Release (id=26190)153 10.574000 10.21.56.15 ? 8.137.154.246 MQTT 58 Publish Received (id=6)154 10.627000 8.137.154.246 ? 10.21.56.15 MQTT 58 Publish Complete (id=26190)155 10.643000 8.137.154.246 ? 10.21.56.15 MQTT 58 Publish Release (id=6)157 10.728000 10.21.56.15 ? 8.137.154.246 MQTT 58 Publish Complete (id=6)158 10.743000 10.21.56.15 ? 8.137.154.246 MQTT 179 Publish Message (id=26191) [hello101][Packet size limited during capture]160 10.797000 8.137.154.246 ? 10.21.56.15 MQTT 58 Publish Received (id=26191)161 10.797000 8.137.154.246 ? 10.21.56.15 MQTT 177 Publish Message [hello101][Packet size limited during capture]163 10.875000 10.21.56.15 ? 8.137.154.246 MQTT 58 Publish Release (id=26191)164 10.928000 8.137.154.246 ? 10.21.56.15 MQTT 58 Publish Complete (id=26191)165 11.028000 10.21.56.15 ? 8.137.154.246 MQTT 1093 Publish Message (id=26192) [hello103][Packet size limited during capture]166 11.097000 8.137.154.246 ? 10.21.56.15 MQTT 58 Publish Ack (id=26192)167 11.097000 8.137.154.246 ? 10.21.56.15 MQTT 1093 Publish Message (id=7) [hello103][Packet size limited during capture]169 11.175000 10.21.56.15 ? 8.137.154.246 MQTT 58 Publish Ack (id=7)171 11.414000 10.21.56.15 ? 8.137.154.246 MQTT 1093 Publish Message (id=26193) [hello103][Packet size limited during capture]173 11.476000 8.137.154.246 ? 10.21.56.15 MQTT 58 Publish Ack (id=26193)174 11.476000 8.137.154.246 ? 10.21.56.15 MQTT 1093 Publish Message (id=8) [hello103][Packet size limited during capture]176 11.561000 10.21.56.15 ? 8.137.154.246 MQTT 58 Publish Ack (id=8)178 11.746000 10.21.56.15 ? 8.137.154.246 MQTT 70 Publish Message (id=26194) [hello103]180 11.799000 8.137.154.246 ? 10.21.56.15 MQTT 74 Publish Ack (id=26194), Publish Message (id=9) [hello103]181 11.877000 10.21.56.15 ? 8.137.154.246 MQTT 58 Publish Ack (id=9)183 12.378000 10.21.56.15 ? 8.137.154.246 MQTT 1093 Publish Message (id=26195) [hello103][Packet size limited during capture]185 12.447000 8.137.154.246 ? 10.21.56.15 MQTT 58 Publish Ack (id=26195)186 12.447000 8.137.154.246 ? 10.21.56.15 MQTT 1093 Publish Message (id=10) [hello103][Packet size limited during capture]188 12.532000 10.21.56.15 ? 8.137.154.246 MQTT 58 Publish Ack (id=10)189 12.648000 10.21.56.15 ? 8.137.154.246 MQTT 78 Publish Message (id=26196) [hello1retain1]192 12.694000 8.137.154.246 ? 10.21.56.15 MQTT 58 Publish Ack (id=26196)194 12.933000 10.21.56.15 ? 8.137.154.246 MQTT 74 Subscribe Request (id=26197) [hello1retain1]195 12.995000 8.137.154.246 ? 10.21.56.15 MQTT 81 Subscribe Ack (id=26197), Publish Message [hello1retain1]197 13.218000 10.21.56.15 ? 8.137.154.246 MQTT 78 Publish Message (id=26198) [hello1retain0]198 13.249000 8.137.154.246 ? 10.21.56.15 MQTT 58 Publish Ack (id=26198)200 13.496000 10.21.56.15 ? 8.137.154.246 MQTT 74 Subscribe Request (id=26199) [hello1retain0]201 13.534000 8.137.154.246 ? 10.21.56.15 MQTT 59 Subscribe Ack (id=26199)205 23.706000 10.21.56.15 ? 8.137.154.246 MQTT 67 Publish Message [hello103c]206 23.759000 8.137.154.246 ? 10.21.56.15 MQTT 67 Publish Message [hello103c]207 23.975000 10.21.56.15 ? 8.137.154.246 MQTT 71 Publish Message [hello103]208 24.029000 8.137.154.246 ? 10.21.56.15 MQTT 71 Publish Message [hello103]210 24.323000 10.21.56.15 ? 8.137.154.246 MQTT 70 Publish Message [hello103]211 24.392000 8.137.154.246 ? 10.21.56.15 MQTT 70 Publish Message [hello103]213 24.608000 10.21.56.15 ? 8.137.154.246 MQTT 72 Publish Message [hello103]214 24.646000 8.137.154.246 ? 10.21.56.15 MQTT 72 Publish Message [hello103]216 24.877000 10.21.56.15 ? 8.137.154.246 MQTT 323 Publish Message [hello103][Packet size limited during capture]217 24.962000 8.137.154.246 ? 10.21.56.15 MQTT 323 Publish Message [hello103][Packet size limited during capture]219 25.278000 10.21.56.15 ? 8.137.154.246 MQTT 70 Publish Message [hello103]220 25.325000 8.137.154.246 ? 10.21.56.15 MQTT 70 Publish Message [hello103]226 47.349000 10.21.56.15 ? 8.137.154.246 MQTT 56 Disconnect Req227 47.403000 10.21.56.15 ? 8.137.154.246 MQTT 56 Disconnect Req
MQTT(Message Queuing Telemetry Transport)协议的数据包通常包含多个层次。在你提供的数据包分析中,我们可以看到该数据包包含了多个层次,每个层次负责不同的功能。下面是对各个层次的详细解释:
1. 以太网层 (ETH)
Destination: 00:00:00:00:00:00
Source: 00:00:00:00:00:00
Type: IPv4 (0x0800)
以太网层负责物理地址的传输,确保数据包能够在局域网内正确传输。这里的源和目的MAC地址都是全零,这通常表示无效或未设置的地址。
2. IP层 (IP)
Version: 4
Header Length: 20 bytes (5)
Differentiated Services Field: 0x04 (DSCP: LE, ECN: Not-ECT)
Total Length: 53
Identification: 0x0f00 (3840)
Flags: 0x4000, Don't fragment
Fragment offset: 0
Time to live: 49
Protocol: TCP (6)
Header checksum: 0x551c [validation disabled]
Source: 8.137.154.246
Destination: 10.21.56.15
IP层负责在网络层传输数据包,确保数据包能够从源地址到达目的地址。这里可以看到源IP地址是 8.137.154.246,目的IP地址是 10.21.56.15。
3. TCP层 (TCP)
Source Port: 1883
Destination Port: 64033
Sequence number: 7939 (relative sequence number)
Acknowledgment number: 8748 (relative ack number)
Header Length: 20 bytes (5)
Flags: 0x018 (PSH, ACK)
Window size value: 378
Checksum: 0x4d14 [unverified]
Urgent pointer: 0
TCP层负责提供可靠的端到端通信。这里可以看到源端口是 1883,这是MQTT协议的默认端口。目的端口是 64033。TCP标志位 PSH 和 ACK 表示这是一个带有推送标志的确认数据包。
4. MQTT层 (MQTT)
Header Flags: 0x30, Message Type: Publish Message, QoS Level: At most once delivery (Fire and Forget)
Msg Len: 11
Topic Length: 9
Topic: hello103c
Message: <MISSING>
MQTT层负责实际的MQTT消息传输。这里可以看到这是一个发布消息(Publish Message),QoS级别为0,表示“最多一次”交付(Fire and Forget)。主题(Topic)是 hello103c,但消息内容缺失。
总结
以太网层:处理物理地址和局域网内的传输。
IP层:处理网络层的传输,确保数据包从源地址到达目的地址。
TCP层:提供可靠的端到端通信。
MQTT层:处理MQTT协议的消息传输,包括发布、订阅等操作。
相关文章:
pyshark安装使用,ubuntu:20.04
1.容器创建 命令 docker run -d --name pyshark -v D:\src:/root/share ubuntu:2004 /bin/bash -c "while true;do sleep 1000;done" 用于创建并启动一个新的 Docker 容器。 docker run -d --name pyshark -v D:\src:/root/share ubuntu:2004 /bin/bash -c "w…...
基本功能实现
目录 1、环境搭建 2、按键控制灯&电机 LED 电机 垂直按键(机械按键) 3、串口调试功能 4、定时器延时和定时器中断 5、振动强弱调节 6、万年历 7、五方向按键 1、原理及分析 2、程序设计 1、环境搭建 需求: 搭建一个STM32F411CEU6工程 分析: C / C 宏定义栏…...
《那个让服务器“跳舞”的bug》
在程序的世界里,bug 就像隐藏在暗处的小怪兽,时不时跳出来捣乱。而在我的职业生涯中,有一个bug让我至今难忘,它不仅让项目差点夭折,还让我熬了无数个通宵。这个故事发生在一个风和日丽的下午,我们正在开发一…...
Python 网络爬虫进阶:动态网页爬取与反爬机制应对
在上一篇文章中,我们学习了如何使用 Python 构建一个基本的网络爬虫。然而,在实际应用中,许多网站使用动态内容加载或实现反爬机制来阻止未经授权的抓取。因此,本篇文章将深入探讨以下进阶主题: 如何处理动态加载的网…...
创建可直接用 root 用户 ssh 登陆的 Docker 镜像
有时候我们在 Mac OS X 或 Windows 平台下需要开发以 Linux 为运行时的应用,IDE 或可直接使用 Docker 容器,或 SSH 远程连接。本地命令行下操作虽然可以用 docker exec 连接正在运行的容器,但 IDE 远程连接的话 SSH 总是一种较为通用的连接方…...
wordpress 中添加图片放大功能
功能描述 使用 Fancybox 实现图片放大和灯箱效果。自动为文章内容中的图片添加链接,使其支持 Fancybox。修改了 header.php 和 footer.php 以引入必要的 CSS 和 JS 文件。在 functions.php 中通过过滤器自动为图片添加 data-fancybox 属性。 最终代码 1. 修改 hea…...
数据结构 (7)线性表的链式存储
前言 线性表是一种基本的数据结构,用于存储线性序列的元素。线性表的存储方式主要有两种:顺序存储和链式存储。链式存储,即链表,是一种非常灵活和高效的存储方式,特别适用于需要频繁插入和删除操作的场景。 链表的基本…...
库的操作.
创建、删除数据库 创建语法: CREATE DATABASE [IF NOT EXISTS] db_name[ ]是可选项,IF NOT EXISTS 是表明如果不存在才能创建数据库 //查看数据库,假设7行 show databases; //创建数据库 --- 本质在Linux创建一个目录 create database databa…...
Vue进阶之Vue CLI服务—@vue/cli-service Vuex
Vue CLI服务—vue/cli-service & Vuex vue/cli-service初识bin/vue-cli-service.js代码执行解读 Vuexgenerator/index.jsstore/index.js插件化的能力怎么引入呢? vue/cli-service 初识 第一块是上一个讲述的cli是把我们代码的配置项,各种各样的插件…...
导入100道注会cpa题的方法,导入试题,自己刷题
一、问题描述 复习备考的小伙伴们,往往希望能够利用零碎的时间和手上的试题,来复习和备考 用一个能够导入自己试题的刷题工具,既能加强练习又能利用好零碎时间,是一个不错的解决方案 目前市面上刷题工具存下这些问题 1、要收费…...
数据库操作、锁特性
1. DML、DDL和DQL是数据库操作语言的三种主要类型 1.1 DML(Data Manipulation Language)数据操纵语言 DML是用于检索、插入、更新和删除数据库中数据的SQL语句。 主要的DML语句包括: SELECT:用于查询数据库中的数据。 INSERT&a…...
学习笔记039——SpringBoot整合Redis
文章目录 1、Redis 基本操作Redis 默认有 16 个数据库,使用的是第 0 个,切换数据库添加数据/修改数据查询数据批量添加批量查询删除数据查询所有的 key清除当前数据库清除所有数据库查看 key 是否存在设置有效期查看有效期 2、Redis 数据类型String追加字…...
(笔记)简单了解ZYNQ
1、zynq首先是一个片上操作系统(Soc),结合了arm(PS)和fpga(PL)两部分组成 Zynq系统主要由两部分组成:PS(Processing System)和PL(Programmable L…...
大众点评小程序mtgsig1.2算法
测试效果: var e function _typeof(o) {return "function" typeof Symbol && "symbol" typeof Symbol.iterator? function (o) {return typeof o;}: function (o) {return o && "function" typeof Symbol &…...
七牛云AIGC内容安全方案助力企业合规创新
随着人工智能生成内容(AIGC)技术的飞速发展,内容审核的难度也随之急剧上升。在传统审核场景中,涉及色情、政治、恐怖主义等内容的标准相对清晰明确,但在AIGC的应用场景中,这些界限变得模糊且难以界定。用户可能通过交互性引导AI生成违规内容,为审核工作带来了前所未有的不可预测…...
.net的winfrom程序 窗体透明打开窗体时出现在屏幕右上角
窗体透明, 将Form的属性Opacity,由默认的100% 调整到 80%,这个数字越小越透明(尽量别低于50%,不信你试试看)! 打开窗体时出现在屏幕右上角 //构造函数 public frmCalendarList() {InitializeComponent();//打开窗体&…...
基于YOLOv8深度学习的智慧课堂教师上课行为检测系统研究与实现(PyQt5界面+数据集+训练代码)
随着人工智能技术的迅猛发展,智能课堂行为分析逐渐成为提高教学质量和提升教学效率的关键工具之一。在现代教学环境中,能够实时了解教师的课堂表现和行为,对于促进互动式教学和个性化辅导具有重要意义。传统的课堂行为分析依赖于人工观测&…...
使用 Tkinter 创建一个简单的 GUI 应用程序来合并视频和音频文件
使用 Tkinter 创建一个简单的 GUI 应用程序来合并视频和音频文件 Python 是一门强大的编程语言,它不仅可以用于数据处理、自动化脚本,还可以用于创建图形用户界面 (GUI) 应用程序。在本教程中,我们将使用 Python 的标准库模块 tkinter 创建一…...
【C++笔记】模板进阶
前言 各位读者朋友们大家好!上一期我们讲了stack、queue以及仿函数。先前我们讲过模板的初阶内容,这一期我们来更深入的学习一下模板。 一. 非类型模板参数 1.1 非类型模板参数 模板参数分为类型形参和类类型形参: 类型形参:…...
Soul App创始人张璐团队亮相GITEX GLOBAL 2024,展示多模态AI的交互创新
随着全球AI领域的竞争加剧,越来越多的科技巨头和创新企业纷纷致力于多模态AI的开发。2024年10月14日至18日,GITEX GLOBAL海湾信息技术博览会在迪拜举行,吸引了超过6700家全球科技巨头和创新公司参与,展示了智能互联、人工智能等领域的新成果。 此次展会中,Soul App创始人张璐团…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
