当前位置: 首页 > news >正文

Wireshark使用介绍

文章目录

  • Wireshark介绍
  • Wireshark使用
    • 工作模式介绍
      • 1. 混杂模式(Promiscuous Mode)
      • 2. 普通模式(Normal Mode)
      • 3. 监视模式(Monitor Mode)
    • 界面分区
    • 捕获过滤器语法
      • 基本语法
      • 逻辑运算符
      • 高级语法
      • 使用示例
      • 捕获过滤器-速查表
    • 显示过滤器语法
      • 基本语法
      • 逻辑运算符
      • 高级语法
      • 使用示例


Wireshark介绍

Wireshark 是一款非常流行的网络协议分析工具,主要用于捕获和分析网络数据包,广泛应用于网络故障排查、安全分析、性能优化以及协议开发等领域。

Wireshark 的官方网站: https://www.wireshark.org/

Wireshark使用

工作模式介绍

Wireshark 的工作模式主要包括混杂模式普通模式,此外在无线网络环境下还会用到监视模式。以下是详细介绍:

1. 混杂模式(Promiscuous Mode)

混杂模式是 Wireshark 的一种重要工作模式,允许网卡接收所有经过网络接口的数据包,而不仅仅是发给本机的数据包。在这种模式下,网卡不会根据 MAC 地址过滤数据包,因此可以捕获局域网内其他设备之间的通信数据包。

  • 应用场景:混杂模式常用于网络分析、故障排查以及安全检测等场景,能够帮助用户全面了解网络流量情况。
  • 开启方法:在 Wireshark 的菜单栏中,选择“捕获”->“选项”,在弹出的“捕获选项”对话框中,勾选“启用混杂模式”选项。

2. 普通模式(Normal Mode)

普通模式是 Wireshark 的默认工作模式。在这种模式下,网卡只会接收发给本机的数据包(包括广播包),其他设备的数据包会被丢弃。这意味着用户只能捕获与本机相关的网络通信数据,无法捕获局域网内其他设备之间的通信数据。

3. 监视模式(Monitor Mode)

监视模式仅用于无线网络环境。在这种模式下,无线网卡可以捕获无线网络中的所有数据包,而无需与特定的接入点关联。这使得用户可以分析无线网络中的通信情况,检测无线网络的安全性和性能问题。

  • 应用场景:监视模式主要用于无线网络的分析和安全检测,例如检测无线网络中的未授权接入点或无线信号干扰。
  • 开启方法:监视模式的开启方式与混杂模式类似,但具体操作可能会因无线网卡的驱动程序和操作系统而有所不同。

界面分区

Wireshark 是一款功能强大的网络协议分析工具,它可以帮助用户捕获、分析和显示网络数据包。根据您提供的截图和描述,以下是 Wireshark 界面的主要组成部分及其功能的介绍:

  1. 菜单栏
    • 位于窗口顶部,包含文件、编辑、捕获、显示、统计、分析、工具和帮助等菜单选项。这些菜单提供了各种操作和设置功能,如保存捕获的数据包、设置捕获选项、应用显示过滤器等。
  2. 抓包列表
    • 显示捕获到的数据包的列表,包括时间戳、源地址、目的地址、协议、长度和信息等字段。用户可以通过这个列表查看和选择特定的数据包进行分析。
  3. 协议树
    • 在选择某个数据包后,显示该数据包的协议层次结构。用户可以展开各个协议层查看详细信息,如 TCP、IP、以太网等协议的字段和值。
  4. 字节视图
    • 显示选中数据包的原始字节数据,通常以十六进制和ASCII格式显示。这允许用户查看数据包的原始内容,包括协议头和数据负载。
  5. 过滤器栏
    • 位于抓包列表上方,用户可以在这里输入显示过滤器表达式,以筛选和显示特定的数据包。例如,输入 tcp.port == 80 可以显示所有使用 TCP 端口 80 的数据包。
  6. 状态栏
    • 位于窗口底部,显示当前捕获的状态,如捕获的总数据包数、已丢弃的数据包数等。
  7. 详细视图
    • 在协议树下方,提供所选数据包的详细信息,如字段值、注释等。用户可以在这里查看数据包的详细内容和分析结果。

捕获过滤器语法

Wireshark 的捕获过滤器(Capture Filter)用于在捕获数据包时对数据包进行筛选,只捕获符合特定条件的数据包。这有助于减少捕获的数据量,提高分析效率。以下是一些常用的捕获过滤器语法:

基本语法

  • 协议过滤:指定要捕获的协议类型。

    复制

    tcp          # 只捕获 TCP 协议的数据包
    udp          # 只捕获 UDP 协议的数据包
    icmp         # 只捕获 ICMP 协议的数据包
    http         # 只捕获 HTTP 协议的数据包
    
  • IP 地址过滤:指定源或目的 IP 地址。

    复制

    ip.addr == 192.168.1.1  # 捕获源或目的 IP 为 192.168.1.1 的数据包
    ip.src == 192.168.1.1  # 捕获源 IP 为 192.168.1.1 的数据包
    ip.dst == 192.168.1.1  # 捕获目的 IP 为 192.168.1.1 的数据包
    
  • 端口过滤:指定源或目的端口。

    复制

    tcp.port == 80  # 捕获 TCP 协议的 80 端口的数据包
    udp.port == 53  # 捕获 UDP 协议的 53 端口的数据包
    tcp.srcport == 8080  # 捕获 TCP 协议的源端口为 8080 的数据包
    tcp.dstport == 8080  # 捕获 TCP 协议的目的端口为 8080 的数据包
    

逻辑运算符

  • 与(AND):同时满足多个条件。

    tcp && ip.src == 192.168.1.1 && ip.dst == 192.168.1.2
    
  • 或(OR):满足任一条件。

    tcp || udp
    
  • 非(NOT):不满足某个条件。

    !icmp
    

高级语法

  • IP 地址范围:指定 IP 地址范围。

    ip.addr == 192.168.1.1-192.168.1.10  
    # 捕获 IP 地址在 192.168.1.1 到 192.168.1.10 之间的数据包
    
  • 端口范围:指定端口范围。

    tcp.port >= 80 && tcp.port <= 90  
    # 捕获 TCP 协议的 80 到 90 端口之间的数据包
    
  • 协议和端口组合:组合协议和端口条件。

    tcp.port == 80 || udp.port == 53  
    # 捕获 TCP 协议的 80 端口或 UDP 协议的 53 端口的数据包
    
  • MAC 地址过滤:指定源或目的 MAC 地址。

    复制

    ethernet.src == 00:11:22:33:44:55  
    # 捕获源 MAC 地址为 00:11:22:33:44:55 的数据包
    ethernet.dst == 00:11:22:33:44:55  
    # 捕获目的 MAC 地址为 00:11:22:33:44:55 的数据包
    

使用示例

  • 捕获所有 ICMP 数据包:

    icmp
    
  • 捕获源 IP 为 192.168.1.1 且目的端口为 80 的 TCP 数据包:

    tcp && ip.src == 192.168.1.1 && tcp.dstport == 80
    
  • 捕获源 MAC 为 00:11:22:33:44:55 且目的 IP 为 192.168.1.1 的数据包:

    ethernet.src == 00:11:22:33:44:55 && ip.dst == 192.168.1.1
    
  • 捕获除了 ICMP 之外的所有数据包:

    !icmp
    

官方说明文档:https://biot.com/capstats/bpf.html

以下是从您提供的图片中提取的内容:

捕获过滤器-速查表

过滤条件示例说明
源 IP 地址src host 192.168.1.1捕获源 IP 为 192.168.1.1 的数据包
目的 IP 地址dst host 192.168.1.2捕获目的 IP 为 192.168.1.2 的数据包
任意 IP 地址host 192.168.1.3捕获源或目的 IP 为 192.168.1.3 的数据包
源端口src port 80捕获源端口为 80 的数据包
目的端口dst port 443捕获目的端口为 443 的数据包
任意端口port 53捕获源或目的端口为 53 的数据包
TCP 协议tcp捕获所有 TCP 数据包
UDP 协议udp捕获所有 UDP 数据包
ICMP 协议icmp捕获所有 ICMP 数据包
特定协议ip proto 1捕获所有协议类型为 1 的数据包(例如 ICMP)
特定数据包长度len <= 100捕获长度小于等于 100 字节的数据包
特定数据包内容tcp[13] & 8 != 0捕获 TCP 数据包中具有 PSH 标志的数据包
特定数据包标志tcp[tcpflags] == 0x02捕获 TCP SYN 数据包
特定网络接口ether host 00:11:22:33:44:55捕获 MAC 地址为 00:11:22:33:44:55 的数据包
特定 VLANvlan and (src host 192.168.1.1)捕获 VLAN 中源 IP 为 192.168.1.1 的数据包
特定 IP 范围net 192.168.1.0/24捕获源或目的 IP 在 192.168.1.0 到 192.168.1.255 范围内的数据包
特定子网src net 10.0.0.0/8捕获源 IP 在 10.0.0.0 到 10.255.255.255 范围内的数据包

显示过滤器语法

显示过滤器(Display Filter)是Wireshark中用于筛选和显示捕获数据包的语法规则。与捕获过滤器不同,显示过滤器仅影响用户界面中显示的数据包,而不会影响实际捕获的数据包。以下是一些常用的显示过滤器语法:

基本语法

  • 协议过滤:指定要显示的协议类型。

    复制

    tcp          # 显示所有 TCP 协议的数据包
    udp          # 显示所有 UDP 协议的数据包
    icmp         # 显示所有 ICMP 协议的数据包
    http         # 显示所有 HTTP 协议的数据包
    
  • IP 地址过滤:指定源或目的 IP 地址。

    复制

    ip.addr == 192.168.1.1  # 显示源或目的 IP 为 192.168.1.1 的数据包
    ip.src == 192.168.1.1  # 显示源 IP 为 192.168.1.1 的数据包
    ip.dst == 192.168.1.1  # 显示目的 IP 为 192.168.1.1 的数据包
    
  • 端口过滤:指定源或目的端口。

    复制

    tcp.port == 80  # 显示 TCP 协议的 80 端口的数据包
    udp.port == 53  # 显示 UDP 协议的 53 端口的数据包
    tcp.srcport == 8080  # 显示 TCP 协议的源端口为 8080 的数据包
    tcp.dstport == 8080  # 显示 TCP 协议的目的端口为 8080 的数据包
    

逻辑运算符

  • 与(AND):同时满足多个条件。

    tcp && ip.src == 192.168.1.1 && ip.dst == 192.168.1.2
    
  • 或(OR):满足任一条件。

    tcp || udp
    
  • 非(NOT):不满足某个条件。

    !icmp
    

高级语法

  • IP 地址范围:指定 IP 地址范围。

    ip.addr == 192.168.1.1-192.168.1.10  
    # 显示 IP 地址在 192.168.1.1 到 192.168.1.10 之间的数据包
    
  • 端口范围:指定端口范围。

    tcp.port >= 80 && tcp.port <= 90  
    # 显示 TCP 协议的 80 到 90 端口之间的数据包
    
  • 协议和端口组合:组合协议和端口条件。

    tcp.port == 80 || udp.port == 53  
    # 显示 TCP 协议的 80 端口或 UDP 协议的 53 端口的数据包
    
  • MAC 地址过滤:指定源或目的 MAC 地址。

    复制

    ethernet.src == 00:11:22:33:44:55  
    # 显示源 MAC 地址为 00:11:22:33:44:55 的数据包
    ethernet.dst == 00:11:22:33:44:55  
    # 显示目的 MAC 地址为 00:11:22:33:44:55 的数据包
    

使用示例

  • 显示所有 ICMP 数据包:

    icmp
    
  • 显示源 IP 为 192.168.1.1 且目的端口为 80 的 TCP 数据包:

    tcp && ip.src == 192.168.1.1 && tcp.dstport == 80
    
  • 显示源 MAC 为 00:11:22:33:44:55 且目的 IP 为 192.168.1.1 的数据包:

    ethernet.src == 00:11:22:33:44:55 && ip.dst == 192.168.1.1
    
  • 显示除了 ICMP 之外的所有数据包:

    !icmp
    
  • 显示特定协议类型为 1 的数据包(例如 ICMP):

    ip.proto == 1
    
  • 显示长度小于等于 100 字节的数据包:

    frame.len <= 100
    
  • 显示 TCP 数据包中具有 PSH 标志的数据包:

    tcp.flags.psh == 1
    
  • 显示 TCP SYN 数据包:

    tcp.flags.syn == 1
    
  • 显示 VLAN 中源 IP 为 192.168.1.1 的数据包:

    vlan && ip.src == 192.168.1.1
    
  • 显示源或目的 IP 在 192.168.1.0 到 192.168.1.255 范围内的数据包:

    ip.addr == 192.168.1.0/24
    
  • 显示源 IP 在 10.0.0.0 到 10.255.255.255 范围内的数据包:

    ip.src == 10.0.0.0/8
    

相关文章:

Wireshark使用介绍

文章目录 Wireshark介绍Wireshark使用工作模式介绍1. 混杂模式&#xff08;Promiscuous Mode&#xff09;2. 普通模式&#xff08;Normal Mode&#xff09;3. 监视模式&#xff08;Monitor Mode&#xff09; 界面分区捕获过滤器语法基本语法逻辑运算符高级语法使用示例捕获过滤…...

DeepSeek操作Excel,实现图表自动化生成

案例 让DeepSeek操作Excel&#xff0c;实现图表自动化生成。我们只要用自然语言输入我们的需求&#xff08;根据哪块单元格区域做什么图表&#xff09;&#xff0c;就可以直接在Excel中自动生成图表。 操作主界面和图表效果 设置接入方式 这里提供了多种接入方式将DeepSeek接…...

【分布式理论13】分布式存储:数据存储难题与解决之道

文章目录 一、数据存储面临的问题二、RAID磁盘阵列的解决方案1. RAID概述2. RAID使用的技术3. RAID的代表性等级 三、分布式存储的新思路1. 分布式存储背景与特点2. 分布式存储的组成要素 一、数据存储面临的问题 在单机系统时代&#xff0c;当数据量不断增加、硬盘空间不够时…...

C++笔记之标准库中的std::copy 和 std::assign 作用于 std::vector

C++笔记之标准库中的std::copy 和 std::assign 作用于 std::vector code review! 文章目录 C++笔记之标准库中的std::copy 和 std::assign 作用于 std::vector1. `std::copy`1.1.用法1.2.示例2.`std::vector::assign`2.1.用法2.2.示例3.区别总结4.支持assign的容器和不支持ass…...

AWS云从业者认证题库 AWS Cloud Practitioner

题库持续更新&#xff0c;上方二维码查看完整题库&#xff01; 在分担责任模型下&#xff0c;客户对以下哪项负责? A&#xff1a;确保在使用后擦除磁盘驱动器 B&#xff1a;确保在硬件设备上更新固件 C&#xff1a;确保静态数据已加密 D&#xff1a;确保网线为六类或更高类…...

ubuntu20.04重启后不显示共享文件夹

ubuntu20.04重启后不显示共享文件夹 主要参见这两篇博客 Ubuntu重启后不显示共享文件夹_ubuntu 20.04 共享目录无法使用-CSDN博客 ubuntu22.04 配置共享文件夹 找不到/mnt/hgfs_ubuntu安装tools 后mnt文件夹在哪-CSDN博客 重启Ubuntu20.04后&#xff0c;发现共享文件夹进不去…...

C++ 课程设计 汇总(含源码)

C 课程设计 [C课程设计 个人账务管理系统(含源码)](https://arv000.blog.csdn.net/article/details/145601695)[C课程设计 运动会分数统计&#xff08;含源码&#xff09;](https://arv000.blog.csdn.net/article/details/145601819)[C 课程设计打印万年历&#xff08;含源码&a…...

STC 51单片机63——关于STC8H的ADC通道切换问题

使用STC8H时&#xff0c;发现在ADC中断中只能使用一个通道&#xff0c;即使切换了通道&#xff0c;那么数据要不为0&#xff0c;要不就是原先通道的电压。查阅手册&#xff0c;内容并不多&#xff0c;没有发现专门提到的问题。只能去试试&#xff0c;最后发现在ADC中断中&#…...

【前端框架】Vue3 面试题深度解析

本文详细讲解了VUE3相关的面试题&#xff0c;从基础到进阶到高级&#xff0c;分别都有涉及&#xff0c;希望对你有所帮助&#xff01; 基础题目 1. 简述 Vue3 与 Vue2 相比有哪些主要变化&#xff1f; 答案&#xff1a; 响应式系统&#xff1a;Vue2 使用 Object.definePrope…...

数据结构——模拟栈例题B3619

B3619 10 进制转 x 进制 - 洛谷 #include <bits/stdc.h>using namespace std; #define fs first #define sc second #define endl \n #define all(x) x.begin(), x.end() typedef long long ll; typedef pair<int, int> PII;char a[40];void solve(){int n,x;cin&g…...

Web自动化之Selenium 超详细教程(python)

Selenium是一个开源的基于WebDriver实现的自动化测试工具。WebDriver提供了一套完整的API来控制浏览器&#xff0c;模拟用户的各种操作&#xff0c;如点击、输入文本、获取页面元素等。通过Selenium&#xff0c;我们可以编写自动化脚本&#xff0c;实现网页的自动化测试、数据采…...

物联网简介集合

物联网&#xff08;IoT&#xff09;指的是物理设备&#xff08;如电器和车辆&#xff09;之间的互联互通。这些设备嵌入了软件、传感器和连接功能&#xff0c;使其能够相互连接并交换数据。这项技术实现了从庞大的设备网络中收集和共享数据&#xff0c;为打造更高效、自动化的系…...

【设计模式精讲】结构型模式之代理模式(静态代理、JDK动态代理、cglib动态代理)

文章目录 第五章 结构型模式5.1 代理模式5.1.1 代理模式介绍5.1.2 代理模式原理5.1.3 静态代理实现5.1.4 JDK动态代理5.1.4.1 JDK动态代理实现5.1.4.2 类是如何动态生成的5.1.4.3 代理类的调用过程 5.1.5 cglib动态代理5.1.5.1 cglib动态代理实现5.1.5.2 cglib代理流程 5.1.6 代…...

node 使用 Redis 缓存

缓存是什么&#xff1f; 高并发下&#xff0c;一个项目最先出问题的&#xff0c;并不是程序本身&#xff0c;而是数据库最先承受不住。 在数据库上我们可以做很多优化&#xff0c;例如优化 SQL 语句&#xff0c;优化索引&#xff0c;如果数据量大了&#xff0c;还可以分库、分表…...

nginx反向代理负载均衡

反向代理原理&#xff1a; 反向代理服务器架设在服务器端&#xff0c;通过缓冲经常被请求的页面来缓解服务器的工作量&#xff0c;将客户机请求 转发给内部网络上的目标服务器&#xff1b;并将从服务器上得到的结果返回给Internet上请求连接的客户端&#xff0c;此 时代理服务…...

国产编辑器EverEdit - 独门暗器:自动监视剪贴板内容

1 监视剪贴板 1.1 应用场景 如果需要对剪贴板的所有历史进行记录&#xff0c;并进行分析和回顾&#xff0c;则可以使用监视剪贴板功能&#xff0c;不仅在EverEdit中的复制会记录&#xff0c;在其他应用的复制也会记录。 1.2 使用方法 新建一个空文档(重要&#xff1a;防止扰乱…...

AI全栈开发_人工智能AI大模型 Prompt提示词工程详解(全方位介绍及运用)

AI引领的第四次工业革命正席卷而来&#xff0c;如何精准把握这一历史性的机遇&#xff0c;将成为我们这一代人不容忽视且需深入思考与积极行动的重要课题。未来几年AI将会像计算机一样快速普及&#xff0c;面对这一历史性的第一波红利&#xff0c;你是否已准备好把握机遇&#…...

PHP图书借阅小程序源码

&#x1f4da; 图书借阅小程序&#xff1a;一键开启智慧阅读新篇章 &#x1f31f; 这是一款由ThinkPHP与UniApp两大技术巨擘强强联手精心打造的图书借阅微信小程序&#xff0c;它犹如一座随身携带的移动图书馆&#xff0c;让您无论身处何地都能轻松畅游知识的海洋。创新的多书…...

sourcetree gitee 详细使用

SSH 公钥设置 | Gitee 帮助中心 先配置公钥&#xff0c;输入gitee密码完成验证 gitee仓库创建完成 打开sourcetree 如果你本地有项目&#xff08;vite &#xff09;需要 git init 在设置中完成远程仓库的添加 &#xff08;ssh ,https) 直接提交推送&#xff0c;完成后&#xf…...

Hive JOIN过滤条件位置玄学:ON vs WHERE的量子纠缠

Hive JOIN过滤条件位置玄学:ON vs WHERE的量子纠缠 作为数据工程师,Hive JOIN就像吃火锅选蘸料——放错位置味道全变!今天带你破解字节/阿里等大厂高频面试题:ON和WHERE后的过滤条件究竟有什么不同? 一、核心差异对比表 特性ON子句WHERE子句执行时机JOIN操作时JOIN完成后…...

破局与重构:水务企业数字化转型路径探索

随着数字化技术的发展和智慧城市建设进程的推进&#xff0c;水务行业正经历以数据为驱动的深刻变革。本文深入探讨水务行业数字化发展的趋势、水务企业数字化转型的痛点、水务行业标杆企业数字化转型实践以及水务企业数字化转型的方向和路径&#xff0c;为水务企业十五五期间把…...

stm32hal库寻迹+蓝牙智能车(STM32F103C8T6)

简介: 这个小车的芯片是STM32F103C8T6&#xff0c;其他的芯片也可以照猫画虎,基本配置差不多,要注意的就是,管脚复用,管脚的特殊功能,(这点不用担心,hal库每个管脚的功能都会给你罗列,很方便的.)由于我做的比较简单,只是用到了几个简单外设.主要是由带霍尔编码器电机的车模,电机…...

云服务中的“高可用性架构”是怎样的?

在云计算中&#xff0c;“高可用性架构”&#xff08;High Availability Architecture&#xff0c;简称HA架构&#xff09;是指通过设计和配置&#xff0c;使得系统、服务或应用能够在发生硬件故障、软件故障、网络问题等情况下&#xff0c;依然保持正常运行&#xff0c;最大程…...

StableDiffusion+ComfyUI

一、AI、AIGC、AIAgent基本概念 图形生成大模型&#xff1a;StableDiffusion(逼真&#xff0c;开源)、Midjourney(艺术性&#xff0c;商业)、FLUX(复杂场景&#xff0c;开源商业)工作流程构建工具&#xff1a;ComfyUI智能体&#xff1a;COZE、Dify、FastGPTAI视频编辑工具&…...

MATLAB基础学习相关知识

MATLAB安装参考&#xff1a;抖音-记录美好生活 MATLAB基础知识学习参考&#xff1a;【1小时Matlab速成教程-哔哩哔哩】 https://b23.tv/CnvHtO3 第1部分&#xff1a;变量定义和基本运算 生成矩阵&#xff1a; % 生成矩阵% 直接法% ,表示行 ;表示列 a [1,2,3;4,5,6;7,8,9];%…...

设计模式 之 工厂模式(简单工厂模式、工厂方法模式、抽象工厂模式)(C++)

文章目录 C 工厂模式引言一、简单工厂模式概念实现步骤示例代码优缺点 二、工厂方法模式概念实现步骤示例代码优缺点 三、抽象工厂模式概念实现步骤示例代码优缺点 C 工厂模式 引言 在 C 编程中&#xff0c;对象的创建是一个常见且基础的操作。然而&#xff0c;当项目规模逐渐…...

windows下docker使用笔记

目录 镜像的配置 镜像的拉取 推荐镜像源列表&#xff08;截至2025年2月测试有效&#xff09; 配置方法 修改容器名字 如何使用卷 创建不同的容器&#xff0c;每个容器中有不同的mysql和java版本&#xff08;不推荐&#xff09; 1. 安装 Docker Desktop&#xff08;Win…...

SQLMesh 系列教程6- 详解 Python 模型

本文将介绍 SQLMesh 的 Python 模型&#xff0c;探讨其定义、优势及在企业业务场景中的应用。SQLMesh 不仅支持 SQL 模型&#xff0c;还允许通过 Python 编写数据模型&#xff0c;提供更高的灵活性和可编程性。我们将通过一个电商平台的实例&#xff0c;展示如何使用 Python 模…...

【时时三省】(C语言基础)用N-S流程图表示算法

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 N-S流程图 既然用基本结构的顺序组合可以表示任何复杂的算法结构&#xff0c;那么&#xff0c;基本结构之间的流程线就是多余的了。1973年&#xff0c;美国学者I.Nassi和B .Shneiderman提出…...

【HarmonyOS Next】鸿蒙监听手机按键

【HarmonyOS Next】鸿蒙监听手机按键 一、前言 应用开发中我们会遇到监听用户实体按键&#xff0c;或者扩展按键的需求。亦或者是在某些场景下&#xff0c;禁止用户按下某些按键的业务需求。 这两种需求&#xff0c;鸿蒙都提供了对应的监听事件进行处理。 onKeyEvent 默认的…...

Unreal5从入门到精通之在编辑器中更新 UserWidgets

前言 在虚幻中创建越来越复杂和灵活的 UserWidget 蓝图时,一个问题是它们在编辑器中的外观与它们在游戏中的最终外观可能有很大不同。 库存面板示例 假设你想创建一个通用的库存显示小部件。我们可以在整个 UI 中使用它,无论我们需要在哪里显示某些内容。 标题,描述所显示…...

Django 5实用指南(五)模板系统

Django5的模板系统是其核心功能之一&#xff0c;允许开发者将动态数据嵌入到HTML模板中&#xff0c;并根据不同的业务需求渲染页面。Django模板系统基于 Django模板语言&#xff08;DTL&#xff09;&#xff0c;它提供了一些强大的功能&#xff0c;如模板标签、过滤器、条件语句…...

游戏引擎学习第114天

打开内容并回顾 目前正在讨论一个非常重要的话题——优化。当代码运行太慢&#xff0c;无法达到所需性能时&#xff0c;我们该怎么办。昨天&#xff0c;我们通过在代码中添加性能计数器&#xff0c;验证了一些性能分析的数据&#xff0c;这些计数器帮助我们了解每个操作需要的…...

Python 赋能 AI:从零实现图像分类

人工智能(AI)热度持续攀升,而 Python 作为 AI 开发的利器,以其简洁易学、生态丰富的特点,成为众多开发者的首选。本文以图像分类为例,带你用 Python 实现一个简单的 AI 模型。 1. 环境准备 首先,我们需要安装一些必要的 Python 库: pip install tensorflow keras nu…...

UE引擎游戏加固方案解析

据VGinsights的报告&#xff0c;近年来UE引擎在过去几年中市场占比显著增长&#xff0c;其中亚洲市场增幅达到了30%&#xff0c;随着UE5的推出和技术的不断进步&#xff0c;UE引擎在独立开发者和移动游戏开发中的应用也在逐步增加。 UE引擎的优势在于强大的画面表现与视觉特效…...

Http升级为Https - 开发/测试服环境

1.应用场景 主要用于开发/测试服环境将http升级为https, 防止前端web(浏览器)出现Mixed Content报错; 2.学习/操作 1.文档阅读 deepseek 问答; 2.整理输出 报错信息: Mixed Content: The page at <URL> was loaded over HTTPS, but requested an insecure XMLHttpRequ…...

SaaS系统租户隔离方案分析:基于域名与请求头的比较

在设计SaaS系统时&#xff0c;租户隔离是非常重要的设计考虑因素。租户隔离的方式决定了系统的可扩展性、安全性和维护性。常见的租户隔离方案包括基于域名和基于**请求头&#xff08;header&#xff09;**的隔离方式。每种方式都有其优缺点&#xff0c;具体选择应根据系统的需…...

调用click.getchar()时Windows PyCharm无法模拟键盘输入

文章目录 问题描述解决方案参考文献 问题描述 调用 click.getchar() 时&#xff0c;Windows PyCharm 无法模拟键盘输入 解决方案 Run → Edit Configurations… → Modify options → Emulate terminal in output console 参考文献 Terminal emulator | PyCharm Documentati…...

科普:“docker”与“docker compose”

一、安装Docker Desktop 安装Docker Desktop&#xff0c;则既安装了Docker&#xff0c;也安装了Docker Compose 从Docker Desktop官方下载页面(https://www.docker.com/products/docker-desktop/)&#xff0c;选择适合Windows系统的版本进行下载安装。 验证&#xff1a; do…...

Windows 快速搭建C++开发环境,安装C++、CMake、QT、Visual Studio、Setup Factory

安装C 简介 Windows 版的 GCC 有三个选择&#xff1a; CygwinMinGWmingw-w64 Cygwin、MinGW 和 mingw-w64 都是在 Windows 操作系统上运行的工具集&#xff0c;用于在 Windows 环境下进行开发和编译。 Cygwin 是一个在 Windows 上运行的开源项目&#xff0c;旨在提供类Uni…...

【分布式理论12】事务协调者高可用:分布式选举算法

文章目录 一、分布式系统中事务协调的问题二、分布式选举算法1. Bully算法2. Raft算法3. ZAB算法 三、小结与比较 一、分布式系统中事务协调的问题 在分布式系统中&#xff0c;常常有多个节点&#xff08;应用&#xff09;共同处理不同的事务和资源。前文 【分布式理论9】分布式…...

GPT2 模型训练

GPT2 预训练模型 基座 专门供给别人使用的。 对中文分词是一个字一个字分&#xff0c;是Bert的分类方法 好处&#xff1a;灵活。 词库可以适应任何文章。 坏处&#xff1a;训练的难度更大。需要增加数据量 中文分词如果按词组分词 好处&#xff1a;需要的数据量小&#…...

蓝桥杯备考:递归初阶

什么是递归&#xff1f; 相信我们已经不陌生了&#xff0c;函数自己调用自己就叫递归 为什么要有递归&#xff1f; 当处理主问题时&#xff0c;遇到子问题&#xff0c;子问题的解决方法和主问题是一样的&#xff0c;这时候我们就要用到递归 解决流程&#xff1a;问题—》相…...

[C语言]指针进阶压轴题

下面代码打印结果是什么&#xff1f; #include<stdio.h> int main() {char* c[] { "ENTER","NEW","POINT","FIRST" };char** cp[] { c 3,c 2,c 1,c };char*** cpp cp;printf("%s\n", **cpp);printf("%s\n…...

YOLOv11-ultralytics-8.3.67部分代码阅读笔记-build.py

build.py ultralytics\data\build.py 目录 build.py 1.所需的库和模块 2.class InfiniteDataLoader(dataloader.DataLoader): 3.class _RepeatSampler: 4.def seed_worker(worker_id): 5.def build_yolo_dataset(cfg, img_path, batch, data, mode"train"…...

智能体(AI Agent、Deepseek、硅基流动)落地实践Demo——借助大模型生成报表,推动AI赋能企业决策

文章目录 一、 引言二、 系统设计与技术细节2.1 系统架构2.2 核心组件说明 三、 Demo 代码推荐博客&#xff1a; 四、输出年度营销报告1. 总销售额 根据提供的数据&#xff0c;年度总销售额为&#xff1a;740.0。2. 各产品销售额3. 各地区销售额4. 各产品在各地区的销售情况 分…...

mac os设置jdk版本

打开环境变量配置文件 sudo vim ~/.bash_profile 设置不同的jdk版本路径 # 设置JAVA_HOME为jdk17路径 export JAVA_HOME$(/usr/libexec/java_home -v 17)# 设置JAVA_HOME为jdk8路径 export JAVA_HOME$(/usr/libexec/java_home -v 1.8) 设置环境变量 # 将jdk加入到环境变量…...

Llama 3.1 本地电脑部署 Linux系统 【轻松简易】

本文分享在自己的本地电脑部署 llama3.1&#xff0c;而且轻松简易&#xff0c;快速上手。 这里借助Ollama工具&#xff0c;在Linux系统中进行大模型部署~ Llama3.1&#xff0c;有三个版本&#xff1a;8B、70B、405B Llama 3.1 405B 是第一个公开可用的模型&#xff0c;在常识…...

计算机网络安全之一:网络安全概述

1.1 网络安全的内涵 随着计算机和网络技术的迅猛发展和广泛普及&#xff0c;越来越多的企业将经营的各种业务建立在Internet/Intranet环境中。于是&#xff0c;支持E-mail、文件共享、即时消息传送的消息和协作服务器成为当今商业社会中的极重要的IT基础设施。然而&#xff0…...

docker 部署JAR

docker pull openjdk:23 使用Docker运行生成的JAR包是一个将应用程序容器化的好方法&#xff0c;它确保了你的应用可以在任何安装了Docker的环境中以相同的方式运行。以下是创建一个Docker镜像并运行包含你Java应用程序的JAR包的基本步骤。1. 准备 Dockerfile首先&#xff0c;在…...