Wireshark过滤器深度解析:从BPF语法到实战排查场景
1. 从“数据洪流”到“关键线索”为什么我们需要Wireshark过滤器如果你刚接触网络分析打开Wireshark开始抓包大概率会被瞬间刷屏的数据流吓到。屏幕上每秒滚动成百上千条数据包从ARP广播到TCP握手从HTTP请求到DNS查询混杂着各种协议和地址像一场毫无头绪的噪音风暴。我第一次用Wireshark分析一个偶发的网页加载缓慢问题时面对这海量数据完全不知道从哪里看起。这就是网络数据包的原始面貌——一个庞大、嘈杂且平等的世界。但我们的目标从来不是观察整个世界而是找到那根关键的“针”。Wireshark过滤器就是帮你从这片数据海洋中精准捞出那根针的磁铁。它不是一个可有可无的“高级功能”而是让Wireshark从一个“数据包查看器”蜕变为“网络问题诊断利器”的核心技能。无论你是运维工程师排查线上故障开发人员调试API接口还是安全研究员分析异常流量熟练掌握过滤器意味着你能将宝贵的时间从无效的信息筛选中解放出来直击问题核心。这篇文章我将结合多年踩坑经验从最基础的语法讲起带你系统掌握Wireshark过滤器的使用心法让你下次面对网络问题时能胸有成竹地打开Wireshark而不是望“包”兴叹。2. 过滤器两大门派捕获过滤器与显示过滤器深度解析很多新手会混淆Wireshark的两种过滤器它们虽然目标一致——减少数据量但设计哲学、应用场景和语法规则截然不同。理解它们的区别是高效使用的第一步。2.1 捕获过滤器在数据进入前的“海关安检”捕获过滤器顾名思义是在数据包被Wireshark捕获到内存或写入文件之前就进行过滤。它的工作位置非常靠前可以理解为网络数据流进入你分析视野的“第一道关卡”。核心原理与语法BPF 捕获过滤器使用伯克利包过滤器Berkeley Packet Filter, BPF语法。这是一种底层、高效的过滤语言直接被操作系统内核或驱动层的抓包库如libpcap/Npcap所使用。其语法结构相对固定主要由限定词和条件表达式构成。限定词指明要过滤的对象类型。host: 过滤特定主机IP地址或主机名。例如host 192.168.1.1会捕获所有源或目的IP是192.168.1.1的包。net: 过滤一个网络段。例如net 192.168.1.0/24。port: 过滤特定端口。例如port 80。src/dst: 与上述限定词结合指定方向。例如src host 192.168.1.100只捕获源IP是该地址的包。ether/ip/tcp/udp等直接指定协议类型。逻辑运算符and(或): 与or(或||): 或not(或!): 非一个典型且强大的捕获过滤器示例 假设你只想分析与你办公电脑IP: 10.10.10.50和内部Web服务器IP: 10.10.20.100端口443之间的HTTPS流量同时排除令人烦恼的ARP广播和IPv6组播探测。你可以这样设置host 10.10.10.50 and host 10.10.20.100 and port 443 and not arp and not dst net ff00::/8这个过滤器会在数据包进入Wireshark缓冲区之前就丢弃所有不相关的流量极大地节省了系统资源CPU、内存、磁盘I/O。注意捕获过滤器是“一刀切”的。如果过滤条件设置过严导致目标数据包也被丢弃那么你将永远无法在后续分析中看到它。因此在不确定的情况下建议先使用较宽松的过滤器如只过滤主机或者直接不用捕获过滤器转而依赖更灵活的显示过滤器。2.2 显示过滤器在数据海洋中的“交互式搜索”显示过滤器则作用于已经捕获到内存或文件中的数据包。它不决定哪些包被抓进来只决定哪些包被显示在当前的包列表窗口中。这是你最常用、也最强大的工具。核心原理与语法 显示过滤器使用Wireshark自定义的一套更强大、更直观的语法。它基于协议字段进行过滤语法更像编程中的布尔表达式。基本结构协议.字段 运算符 值例如ip.src 192.168.1.1(IP源地址等于)例如tcp.port 443(TCP端口等于443包括源端口或目的端口)例如http.request.method “GET”(HTTP请求方法为GET)常用运算符(等于),!(不等于)(用于数值比较如frame.len 1000)contains(包含用于字符串如http.host contains “baidu”)matches(正则表达式匹配功能强大但性能开销大慎用)逻辑运算符and,or,not,,||,!(含义与编程中一致)显示过滤器的核心优势在于“可逆”。你可以随时修改、清除显示过滤器之前被隐藏的数据包会立刻重新显示出来没有任何数据损失。这让你可以大胆地尝试各种过滤条件从不同维度透视已捕获的数据。两者对比与选型策略特性捕获过滤器 (BPF)显示过滤器工作阶段捕获前内核/驱动层捕获后应用层过滤效率极高不消耗应用层资源高但需遍历已捕获数据灵活性低语法固定过滤后数据丢失极高语法丰富可随时更改主要用途1. 长期抓取特定流量如安全监控2. 在流量巨大时避免资源耗尽3. 排除已知的干扰噪音如广播1. 交互式问题排查2. 多维度数据透视3. 绝大多数日常分析场景语法示例host 10.0.0.1 and port 80ip.addr 10.0.0.1 and tcp.port 80实操心得我的习惯是在开始一次新的抓包会话时如果目标非常明确例如我只想抓取某两个特定服务之间的流量我会设置一个宽松的捕获过滤器如host [目标IP]来初步瘦身。然后在分析阶段几乎全部依赖显示过滤器进行精细化的探索和定位。记住一个原则当你不确定时优先使用显示过滤器当你非常确定且需要高性能时才使用捕获过滤器。3. 显示过滤器进阶从语法到实战的深度指南掌握了显示过滤器的基本语法就像拿到了一把万能钥匙但要知道开哪扇门还需要一张建筑地图。这部分我们将深入协议字段、组合技巧和实用函数。3.1 理解协议字段的层次结构Wireshark的显示过滤器强大之处在于它理解协议的层次结构。在Wireshark的“Packet Details”面板中你可以看到数据包被逐层解包Frame物理帧 - Ethernet数据链路层 - IP网络层 - TCP传输层 - HTTP应用层。过滤器也遵循这个结构。通用字段frame.time 时间戳可用于过滤特定时间范围如frame.time “2023-10-01 09:00:00”。frame.len 帧长度在网线上的原始长度。frame contains “GET” 在整个帧的原始数据中搜索字符串“GET”性能开销大慎用。协议特定字段IP层ip.addr任一IP地址ip.src,ip.dst,ip.ttl生存时间。TCP层tcp.port任一端口tcp.srcport,tcp.dstport,tcp.flags标志位。这里有个宝藏字段tcp.flags.syn 1可以过滤出所有的TCP SYN包连接发起tcp.flags.reset 1可以过滤出所有的RST包连接重置这对于分析连接问题极其有用。HTTP层http.request所有HTTP请求http.response所有HTTP响应http.host,http.request.uri,http.response.code。一个实战场景你想找出所有响应缓慢服务器处理时间1秒的HTTP请求。这需要组合时间过滤和协议过滤。你可以先过滤出HTTP请求和响应然后利用Wireshark的“时间差”计算功能但这通常需要结合跟踪流Follow TCP Stream和专家信息Expert Info来人工判断。一个更直接的思路是先过滤出高延迟的TCP包通过tcp.analysis.ack_rtt即TCP确认往返时间再查看这些包所在的HTTP会话。3.2 组合过滤与条件逻辑真正的威力来自于组合。假设一个复杂场景你需要分析来自某个网段10.10.0.0/16的所有非管理员用户端口不是22和3389访问外部Web服务端口80或443时出现的HTTP 5xx错误或TCP重传。这个过滤条件可以这样构建(ip.src 10.10.0.0 and ip.src 10.10.255.255) and (tcp.dstport 80 or tcp.dstport 443) and not (tcp.srcport 22 or tcp.srcport 3389) and (http.response.code 500 or tcp.analysis.retransmission)分解来看(ip.src 10.10.0.0 and ip.src 10.10.255.255) 源IP在指定网段。(tcp.dstport 80 or tcp.dstport 443) 目标端口是HTTP或HTTPS。not (tcp.srcport 22 or tcp.srcport 3389) 排除源端口是SSH或RDP的管理流量。(http.response.code 500 or tcp.analysis.retransmission) 满足“HTTP 5xx错误”或“TCP重传”任一条件。提示善用括号来明确逻辑优先级尤其是在复杂的and/or混合表达中。Wireshark的过滤器输入框有语法高亮绿色表示有效红色表示错误黄色表示可能存在性能问题如contains或matches作用于大字段。3.3 活用过滤器的“自动补全”与“表达式按钮”Wireshark提供了极佳的人机交互来辅助你编写过滤器自动补全在过滤器输入框开始键入如tcp.按下CtrlSpace会弹出所有可用的tcp字段列表。这是学习协议字段最快的方式。右键菜单添加为过滤器在“Packet Details”面板右键点击任意一个字段如“Source Port: 54321”可以选择“Apply as Filter” - “Selected”它会自动生成如tcp.srcport 54321的过滤器并立即应用。你还可以选择“…and Selected”, “…or Selected”, “…and not Selected”来与现有过滤器进行逻辑组合效率极高。表达式按钮点击过滤器输入框右侧的“表达式…”按钮会打开一个图形化对话框按协议树分类列出了所有可过滤的字段及其描述、类型你可以在这里浏览、选择并构建过滤器对于不熟悉的协议特别有帮助。实操心得我强烈建议在初期多使用右键菜单和表达式对话框来构建过滤器这不仅能保证语法正确更能让你直观地了解每个数据包中到底有哪些字段可以被过滤。久而久之常用的过滤表达式你就会烂熟于心了。4. 经典排查场景下的过滤器实战配方理论说再多不如实际操练。下面我分享几个经过无数次验证、能直接“抄作业”的过滤器配方覆盖了最常见的网络问题排查场景。4.1 场景一定位网络延迟或丢包网络慢、卡顿、时断时续这类问题通常与TCP的重传、重复确认、零窗口等机制有关。查看所有重传包tcp.analysis.retransmission为什么用它Wireshark的“TCP分析”功能能智能识别出哪些包是重传的。大量重传是网络拥塞或不可靠的典型标志。查看重复的ACKtcp.analysis.duplicate_ack为什么用它收到乱序的包时接收方会发送重复ACK来告知发送方。频繁的重复ACK可能意味着网络路径不稳定或有包丢失。查看零窗口通告tcp.analysis.zero_window为什么用它当接收方缓冲区满时会通告窗口大小为0发送方必须暂停。这通常指向接收端应用处理速度跟不上接收缓冲区满是应用层性能瓶颈的线索。查看连接建立与断开仅显示TCP SYN包tcp.flags.syn 1 and tcp.flags.ack 0仅显示TCP FIN包tcp.flags.fin 1仅显示TCP RST包tcp.flags.reset 1为什么用它快速聚焦于连接的开始和异常结束。突然的RST可能是防火墙中断、服务崩溃或应用错误。组合使用tcp.analysis.retransmission or tcp.analysis.zero_window可以一次性揪出两种最常见的导致延迟的问题包。4.2 场景二分析特定应用或服务流量你想看所有与某个网站或某个后台API的交互。过滤特定域名HTTP/HTTPShttp.host contains “example.com”(明文HTTP)对于HTTPS由于内容加密无法直接过滤域名。但可以通过Server Name Indication (SNI)扩展来过滤在TLS握手阶段是明文的tls.handshake.extensions_server_name “example.com”过滤特定API路径http.request.uri contains “/api/v1/login”过滤特定请求方法http.request.method “POST”过滤错误响应http.response.code 400进一步细化http.response.code 404(未找到)http.response.code 500(内部服务器错误)4.3 场景三安全分析与异常流量检测在安全事件响应或日常巡检中需要快速识别可疑行为。扫描探测行为大量到不同端口的SYN包tcp.flags.syn 1 and tcp.flags.ack 0然后观察目的IP和目的端口的变化规律。ICMP扫描如Ping扫icmp.type 8(Echo request) 并观察目的IP的分布。可疑的本地连接发现内网机器向非常用高端口发起连接tcp.srcport 30000 and tcp.dstport 10000并结合ip.src判断源IP是否为内部地址。过滤DNS查询所有DNS查询dns查询特定域名dns.qry.name contains “suspicious.com”ARP欺骗检测查看是否有多个IP对应同一个MAC地址这通常需要观察但可以过滤出所有ARP响应包arp.opcode 2然后检查“Sender MAC address”和“Sender IP address”的映射关系是否异常。4.4 场景四性能分析与流量统计过滤大包frame.len 1500(超过标准MTU的包可能是巨帧或分片)过滤特定协议流量占比虽然过滤器本身不统计但你可以先应用过滤器如tcp.port 443然后看Wireshark状态栏显示的“Displayed”包数占总“Packets”包数的比例快速估算HTTPS流量占比。结合IO GraphsWireshark的“统计” - “IO Graphs”功能更强大。你可以在图形中添加多条曲线每条曲线应用不同的显示过滤器例如一条曲线是tcp.port 80另一条是tcp.port 443从而直观地对比不同协议在不同时间段的流量速率和波动情况。5. 高效使用过滤器的习惯与避坑指南掌握了这么多技巧最后分享一些能极大提升你分析效率的习惯和那些年我踩过的坑。5.1 建立你的过滤器“快捷方式”Wireshark允许你保存常用的显示过滤器。点击过滤器输入框右侧的“”号可以命名并保存当前过滤器。例如我保存了名为“MyPC_To_Web”的过滤器内容是ip.addr 10.10.10.50 and ip.addr 10.10.20.100。下次只需从下拉列表中选择即可无需重复输入。5.2 从宏观到微观的分析流程先看“专家信息”捕获完成后先看左下角的“专家信息”Expert Info选项卡。它会汇总错误、警告、注意等信息如大量重传、重复ACK、乱序等给你一个宏观的问题指向。应用初步过滤器根据专家信息或问题描述应用一个宽泛的过滤器缩小范围。例如如果问题是“用户A访问服务B慢”就先过滤ip.addr A and ip.addr B。跟踪TCP/UDP流在过滤后的数据包列表中右键一个相关包选择“追踪流” - “TCP流/UDP流/SSL流”。这会将整个会话的所有数据包提取出来并以对话形式呈现对于理解应用层交互逻辑至关重要。Wireshark会自动生成一个过滤器如tcp.stream eq 12方便你来回切换。使用着色规则Wireshark默认的着色规则已经很有用如绿色是TCP流量浅蓝是UDP黑色是错误。但你也可以自定义规则。例如我为tcp.analysis.retransmission设置一个醒目的红色背景这样重传包在列表里会一目了然。结合“端点”和“对话”统计在“统计”菜单下“端点”和“对话”功能可以帮你快速了解抓包文件中哪些主机在通信通信流量大小、包数排名。这对于发现异常连接如内网机器连接未知外部IP非常有效。5.3 常见问题与排查技巧实录问题1过滤器语法正确但过滤不出任何包检查点1协议字段名是否正确。确保你使用的协议和字段存在于你要过滤的数据包中。例如对一个纯UDP包使用tcp.port过滤器是无效的。在“Packet Details”面板确认该包的解码层次。检查点2大小写和空格。字段名通常是小写字符串值可能区分大小写。ip.addr 192.168.1.1是正确的IP.Addr 192.168.1.1可能无法识别。检查点3值的类型。端口号是数字不要加引号tcp.port 80。IP地址和字符串通常需要引号但Wireshark对IP地址比较智能加不加都可以。字符串必须加双引号如http.request.method “GET”。问题2捕获过滤器导致漏包牢记黄金法则如果不100%确定宁愿不用捕获过滤器或者只用最宽松的如只抓某个网卡、排除ARP。用显示过滤器来做精细筛选。漏掉的包是找不回来的。问题3过滤后分析但感觉上下文缺失使用“Prepare a Filter”右键菜单中“Apply as Filter”下方有一个“Prepare a Filter”。它只生成过滤器表达式而不立即应用方便你构建复杂的组合条件。善用“且非”逻辑比如你已经过滤出错误包http.response.code 500现在想看看这些错误发生前后几秒的正常请求是什么样。可以先用tcp.stream eq X跟踪一个错误流记下流索引号然后过滤tcp.stream eq X来查看整个会话的完整上下文。问题4性能问题过滤或搜索很慢避免在超大文件上使用contains或matches这两个操作符需要对每个包进行全文扫描非常耗时。如果可能尽量用更具体的协议字段过滤。先应用一个强约束过滤器缩小范围比如先过滤出目标IP对再在这个小集合里进行字符串搜索。考虑使用tshark命令行工具对于需要批量处理或自动化分析超大pcap文件的任务Wireshark的命令行版本tshark配合过滤器是更好的选择它资源开销更小。过滤器是Wireshark的灵魂它的熟练度直接决定了你的网络数据分析效率上限。不要试图一次记住所有语法从解决一个具体的小问题开始比如“找出所有访问百度首页的请求”尝试构建过滤器利用右键菜单和自动补全在实践中反复使用这些知识就会内化成你的本能。当你能够快速地从数十万的数据包中精准定位到那一个异常的SYN重传或是那个返回500错误的API调用时你会真正体会到这种“掌控力”带来的成就感。

相关新闻

Docker容器管理实战:从虚拟化支持到生命周期与数据持久化

Docker容器管理实战:从虚拟化支持到生命周期与数据持久化

1. 从“虚拟化支持未检测到”说起:为什么你需要理解Docker基本管理如果你最近尝试在Windows上安装Docker Desktop,大概率会碰到那个令人头疼的弹窗:“Docker Desktop failed to start because virtualization support wasn’t detected”。这…

2026/8/5 5:57:36 阅读更多 →
风控实战指南:从核心原理到业务场景的平衡艺术

风控实战指南:从核心原理到业务场景的平衡艺术

1. 风控初印象:它远不止是“说不”“风控”这个词,听起来挺高大上,又有点神秘,甚至带点“生人勿近”的距离感。在很多人的第一印象里,风控部门就是那个总在说“不”的部门:申请贷款?不批。交易支…

2026/8/5 5:57:36 阅读更多 →
从半加器到超前进位:计算机加法器的核心原理与工程实现

从半加器到超前进位:计算机加法器的核心原理与工程实现

1. 项目概述:从开关到计算,加法器的演进之路在数字电路和计算机体系结构的世界里,加法器是当之无愧的基石。它远不止是一个简单的“计算器”,而是所有复杂运算(减法、乘法、除法乃至浮点运算)得以构建的起点…

2026/8/5 5:57:36 阅读更多 →

最新新闻

Ubuntu 22.04双系统安装指南:从分区到引导的完整实践

Ubuntu 22.04双系统安装指南:从分区到引导的完整实践

1. 项目概述:为什么选择Ubuntu 22双系统?如果你正在看这篇内容,大概率是厌倦了Windows的某些限制,或者对Linux世界充满好奇,想在不放弃现有Windows环境的前提下,踏出探索的第一步。实机安装Ubuntu 22双系统…

2026/8/5 8:16:35 阅读更多 →
C++类与对象完整学习路线(上)

C++类与对象完整学习路线(上)

文章导航 前序 一.类的定义 1.类定义格式 1.1 访问限定符默认规则 1.2 类域 二.实例化到底是什么? 1.实例化 2. 对象的大小 三.你了解this指针多少? 大家好,我是小沐。最近持续深耕C基础语法,今天也是刚好来到了“类与对…

2026/8/5 8:16:35 阅读更多 →
从别名到脚本:构建高效个人命令管理体系的完整指南

从别名到脚本:构建高效个人命令管理体系的完整指南

1. 从“无法识别”到高效助手:为什么你需要一个命令管理器如果你在Windows的PowerShell里敲下opencode,大概率会看到那个熟悉的红色错误:“无法将‘opencode’项识别为 cmdlet、函数、脚本文件或可运行程序的名称”。这个错误本身&#xff0c…

2026/8/5 8:16:35 阅读更多 →
AI如何真正处理数学问题:从文本理解到定理证明的工程实践

AI如何真正处理数学问题:从文本理解到定理证明的工程实践

最近在技术社区里,一个标题为“OpenAI Astra 破解数学十大难题”的消息引起了不小的讨论。乍一看,这像是一个激动人心的突破,仿佛AI即将攻克人类智慧的巅峰。但作为一名长期与各类AI工具和模型打交道的开发者,我的第一反应是&…

2026/8/5 8:16:35 阅读更多 →
微信ClawBot技术解析:开源AI模型与微信生态的平民化AI代理实践

微信ClawBot技术解析:开源AI模型与微信生态的平民化AI代理实践

1. 从一只龙虾到14亿入口:ClawBot现象的本质是什么?最近,一个叫“微信ClawBot”的东西在圈子里火得不行。你可能没听过这个名字,但你大概率在微信群里见过它的“亲戚”——那些能陪你聊天、帮你查天气、甚至能写段子的机器人。Cla…

2026/8/5 8:16:35 阅读更多 →
BJD盲盒鉴定实战指南:从信息搜集到价值评估全解析

BJD盲盒鉴定实战指南:从信息搜集到价值评估全解析

1. 项目背景与核心概念 在当今的潮流玩具与收藏品市场,盲盒以其独特的“未知惊喜”机制,吸引了大量年轻消费者和收藏爱好者。而BJD(Ball-Jointed Doll,球关节人偶)作为高端收藏品,以其精美的工艺、高度的可…

2026/8/5 8:15:35 阅读更多 →

日新闻

Java缓存框架:JetCache

Java缓存框架:JetCache

TOC 一、简介 JetCache 是一个 Java 缓存抽象框架,为不同的缓存解决方案提供了统一的使用方式。 它提供的注解比 Spring Cache 更加强大。 JetCache 的注解支持原生 TTL、两级缓存以及在分布式环境中的自动刷新功能,同时你也可以通过代码直接操作 Cach…

2026/8/5 0:00:43 阅读更多 →
AD 铺铜设置十字连接,过孔全连接,新版AD的简单设置

AD 铺铜设置十字连接,过孔全连接,新版AD的简单设置

需求:通孔焊盘 十字花;过孔 Via 实心直连;贴片焊盘按需设置 AD 测试版本AD24 很多工程师踩坑:全部统一十字,导致接地过孔阻抗高、大电流发热! 一、快捷键打开规则 PCB 界面按下:D R 展开…

2026/8/5 0:00:43 阅读更多 →
AI素描转换技术深度拆解(2024最新论文+工业级落地代码):从Stable Diffusion ControlNet到LoRA微调全链路解析

AI素描转换技术深度拆解(2024最新论文+工业级落地代码):从Stable Diffusion ControlNet到LoRA微调全链路解析

更多请点击: https://kaifayun.com 第一章:AI生成素描效果 AI生成素描效果是计算机视觉与风格迁移技术融合的典型应用,其核心在于将彩色照片或RGB图像转换为具有手绘质感、明暗对比强烈、边缘清晰的单色素描图像。该过程通常依赖于深度学习模…

2026/8/5 0:00:43 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/4 13:24:41 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/4 11:41:39 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/4 5:26:40 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/4 13:38:24 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/4 11:09:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/4 13:38:40 阅读更多 →