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

25、工业防火墙 - 工控网络保护 (模拟) - /安全与维护组件/industrial-firewall-dcs-protection

76个工业组件库示例汇总

工业防火墙 - 工控网络保护 (模拟)

概述

这是一个交互式的 Web 组件,旨在模拟工业防火墙在保护关键工控网络(特别是 DCS - 分布式控制系统)免受网络攻击(如勒索软件传播)方面的核心功能。组件通过可视化简化的网络拓扑、模拟网络流量、应用防火墙规则,并记录流量日志和安全告警,来演示基本的网络安全防护概念。

请注意:这是一个高度简化的前端模拟演示,不执行真实的防火墙策略或网络数据包分析。所有网络流量、攻击模式、规则匹配和阻止行为都是基于预设逻辑和随机性在浏览器端模拟生成的。

主要功能

  • 网络拓扑可视化 (简化):
    • 展示典型的工业网络分层结构:IT 网络DMZ (隔离区)OT 网络 (DCS)
    • 清晰标示防火墙在 IT/DMZ 之间和 DMZ/OT 之间的位置。
    • 通过简单的动画点模拟网络流量在区域间的流动(绿色表示允许,红色表示被阻止)。
  • 防火墙规则列表 (概念性):
    • 展示一组典型的工业防火墙规则示例,涵盖允许特定工控协议(S7, Modbus, EtherNet/IP)在 OT 网络内部或从受信任源(如 DMZ 特定服务器)访问,以及阻止高风险协议(如 SMB, RDP)跨区域传输或拒绝来自 IT 的直接访问 OT 等。
    • 显示规则的描述和状态(启用/禁用,当前均为启用)。
    • 提供规则搜索功能。
  • 实时流量日志:
    • 以表格形式实时记录模拟的网络流量事件。
    • 包含信息:时间戳、源区域/IP (简化)、目标区域/IP (简化)、协议/端口、防火墙动作(ALLOW / BLOCK)。
    • 允许/阻止的动作以不同颜色高亮显示。
    • 提供按动作(允许/阻止)和区域(IT/DMZ/OT)过滤流量日志的功能。
  • 安全告警日志 (阻止攻击):
    • 当防火墙根据规则阻止了模拟的攻击流量(如来自 IT 的 SMB 访问 OT、外部网络扫描 OT 端口、IT 到 OT 的 RDP 尝试)时,在此面板生成安全告警。
    • 告警信息包含时间戳、检测到的攻击类型、源/目标信息以及被触发的阻止规则(概念性)。
    • 提供清除当前告警列表的功能。
  • 防火墙状态指示:
    • 页眉实时显示防火墙的整体状态:ACTIVE (运行中), WARNING (警告,暂未使用), ATTACK BLOCKED (检测到并阻止攻击)。
    • 当有攻击被阻止时,状态变为 ATTACK BLOCKED,并出现一个醒目的红色告警徽章。
  • 界面风格: 采用苹果科技工业风格,三栏布局,强调安全、监控和信息的清晰展示,支持响应式设计。

如何使用

  1. 打开页面: 在浏览器中打开 index.html
  2. 观察拓扑与规则: 在左侧面板查看简化的网络拓扑和防火墙规则列表。
  3. 监控实时流量: 在中间面板观察实时生成的网络流量日志。注意区分允许 (绿色标识) 和阻止 (红色标识) 的流量。
  4. 过滤流量: 使用流量日志上方的下拉菜单按动作(允许/阻止)或区域进行过滤,以关注特定类型的流量。
  5. 识别攻击与告警:
    • 观察是否有红色的阻止流量出现在日志中,特别是那些涉及高风险协议(如 SMB)或跨越 IT/OT 边界的流量。
    • 当模拟的攻击流量被阻止时,右侧"安全告警"面板会新增一条告警记录。
    • 同时,页眉的状态指示灯会变红闪烁,文字变为"检测到并阻止攻击!",并出现红色告警徽章 !
  6. 查看告警详情: 阅读右侧面板中的告警信息,了解模拟的攻击类型、来源、目标和阻止原因。
  7. 清除告警: 点击告警面板右上角的"清除告警"按钮,将清空告警列表,页眉状态也会恢复(如果之后没有新的攻击被阻止)。
  8. 搜索规则: 在规则列表上方的搜索框输入关键字过滤规则描述。

模拟细节

  • 网络区域与 IP: 定义了 IT, DMZ, OT 三个区域,并为每个区域设定了简化的代表性 IP 地址或地址段。
  • 协议: 定义了一系列常见 IT 和 OT 协议及其标准端口和概念性风险等级。
  • 防火墙规则: 预设了一组规则,采用自顶向下、首个匹配即生效的简化逻辑。规则包含源/目标区域、源/目标 IP (支持 ‘any’ 和简单的地址段匹配)、协议和动作 (allow/block)。包含了一些关键的默认阻止规则,如阻止 IT->OT 直接访问、阻止跨区域 SMB 等。
  • 流量生成: 定时生成"正常"流量,模拟允许的通信模式(如 OT 内部通信、IT 访问 DMZ、受限的 DMZ 访问 OT)。
  • 攻击模拟: 以较低频率随机生成几种典型的攻击流量:
    • 勒索软件传播尝试: IT -> OT 的 SMB 流量。
    • 网络扫描尝试: 外部 IP -> OT 的未知高位端口流量。
    • 未授权访问尝试: IT -> OT 的 RDP 流量。
  • 流量处理: 每条生成的流量(无论正常或攻击)都会经过规则匹配逻辑,确定最终动作 (allow/block)。
  • 告警触发: 当攻击类型的流量被规则阻止时,触发安全告警。
  • 状态更新: 防火墙全局状态根据是否有攻击被阻止来更新。
  • 流量可视化: 通过在网络拓扑图上动态添加和移除 CSS 动画的"点"来模拟流量,点的颜色和动画路径/终点根据允许/阻止状态变化。

文件结构

安全与维护组件/industrial-firewall-dcs-protection/
├── index.html         # 组件的 HTML 结构
├── styles.css         # 组件的 CSS 样式 
├── script.js          # 组件的 JavaScript 逻辑 (模拟流量, 规则匹配, 攻击防御)
└── README.md          # 本说明文件

技术栈

  • HTML5
  • CSS3 (使用了 CSS 变量, Grid 布局, Flexbox, 动画, 媒体查询)
  • JavaScript (原生 JS, 无外部库依赖)

效果展示

在这里插入图片描述

源码

index.html

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>工业防火墙 - 工控网络保护</title><link rel="stylesheet" href="styles.css">
</head>
<body><div class="firewall-container"><header class="main-header"><h1>工业防火墙 - DCS 网络保护</h1><div class="header-status"><span class="status-indicator" id="firewallStatusIndicator"></span><span id="firewallStatusText">初始化中...</span><span class="attack-blocked-badge is-hidden" id="attackBlockedBadge">!</span></div></header><main class="main-content"><!-- Column 1: Topology & Rules --><section class="topology-rules-panel panel"><div class="topology-section"><h2><i class="icon icon-network"></i> 网络拓扑与防火墙</h2><div class="network-topology" id="networkTopology"><div class="zone it-zone">IT 网络</div><div class="zone dmz-zone">DMZ</div><div class="zone ot-zone">OT 网络 (DCS)</div><div class="firewall-line fw-it-dmz"></div><div class="firewall-icon fw-it-dmz-icon">FW</div><div class="firewall-line fw-dmz-ot"></div><div class="firewall-icon fw-dmz-ot-icon">FW</div><!-- Traffic paths/dots added by JS/CSS --></div></div><div class="rules-section"><h2><i class="icon icon-rules"></i> 防火墙规则 (概念)</h2><div class="panel-toolbar"><input type="search" id="ruleSearch" placeholder="搜索规则..."><span class="rule-count" id="ruleCount">加载中...</span></div><ul id="firewallRuleList" class="rule-list"><li class="placeholder">加载规则中...</li><!-- Rules populated by JS --></ul></div></section><!-- Column 2: Live Traffic Log --><section class="traffic-log-panel panel"><h2><i class="icon icon-traffic"></i> 实时流量日志</h2><div class="panel-toolbar"><select id="trafficFilterAction"><option value="all">所有动作</option><option value="allowed">允许</option><option value="blocked">阻止</option></select><select id="trafficFilterZone"><option value="all">所有区域</option><option value="IT">IT</option><option value="DMZ">DMZ</option><option value="OT">OT</option></select></div><div class="traffic-table-container"><table id="trafficLogTable"><thead><tr><th>时间</th><th>源区域/IP</th><th>目标区域/IP</th><th>协议/端口</th><th>动作</th></tr></thead><tbody id="trafficLogTBody"><tr class="placeholder-row"><td colspan="5">等待流量数据...</td></tr><!-- Traffic logs populated by JS --></tbody></table></div></section><!-- Column 3: Security Alerts Log --><section class="alerts-log-panel panel"><h2><i class="icon icon-shield"></i> 安全告警 (已阻止攻击)</h2><div class="panel-toolbar"><button class="action-button clear-alerts-btn" id="clearAlertsBtn"><i class="icon icon-clear"></i> 清除告警</button><span class="alert-count" id="alertCount">0 条告警</span></div><ul id="alertLogList" class="alert-log-list"><li class="placeholder">暂无安全告警</li><!-- Alerts populated by JS --></ul></section></main><footer class="main-footer"><p>&copy; 2024 工业防火墙模拟系统. 概念演示.</p></footer></div><script src="script.js"></script>
</body>
</html> 

styles.css

:root {--bg-color-light: #f9f9f9;--bg-color-container: #ffffff;--header-bg: #f5f5f7;--panel-bg: #ffffff;--border-color: #d1d1d6; /* Slightly darker border for structure */--border-color-subtle: #e5e5ea;--text-primary: #1d1d1f;--text-secondary: #515154;--text-label: #6e6e73;--accent-blue: #007aff;--accent-green: #34c759;--accent-orange: #ff9500;--accent-red: #ff3b30;--accent-teal: #5ac8fa; /* For network elements */--accent-grey: #8e8e93;--status-active: var(--accent-green);--status-warning: var(--accent-orange);--status-error: var(--accent-red); /* Could be used for FW error */--status-attack-blocked: var(--accent-red);--action-allowed: var(--accent-green);--action-blocked: var(--accent-red);--rule-enabled: var(--accent-green);--rule-disabled: var(--accent-grey);--zone-it-bg: rgba(0, 122, 255, 0.05);--zone-dmz-bg: rgba(255, 149, 0, 0.05);--zone-ot-bg: rgba(52, 199, 89, 0.05);--list-item-hover-bg: #f0f0f0;--table-row-hover-bg: #f5faff;--input-bg: #f0f2f5;--input-border: transparent;--input-focus-border: var(--accent-blue);--placeholder-text: #aaaaaa;--shadow-color: rgba(0, 0, 0, 0.05);--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-monospace: "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--border-radius: 8px;--border-radius-small: 4px;--transition-speed: 0.2s;
}* {box-sizing: border-box;margin: 0;padding: 0;
}body {font-family: var(--font-family);background-color: var(--bg-color-light);color: var(--text-primary);line-height: 1.4;overflow-x: hidden;
}.firewall-container {max-width: 1800px;margin: 1rem auto;background-color: var(--bg-color-container);border-radius: var(--border-radius);box-shadow: 0 4px 12px var(--shadow-color);overflow: hidden;display: flex;flex-direction: column;height: calc(100vh - 2rem); /* Limit height */min-height: 700px; /* Minimum reasonable height */
}/* Header */
.main-header {background-color: var(--header-bg);padding: 0.75rem 1.5rem;border-bottom: 1px solid var(--border-color);flex-shrink: 0;display: flex;justify-content: space-between;align-items: center;
}.main-header h1 {font-size: 1.3rem;font-weight: 600;color: var(--text-primary);
}.header-status {display: flex;align-items: center;gap: 0.5rem;font-size: 0.9rem;color: var(--text-secondary);
}.status-indicator {width: 12px;height: 12px;border-radius: 50%;background-color: var(--accent-grey); /* Initial */transition: background-color var(--transition-speed);
}.status-indicator.active {background-color: var(--status-active);
}.status-indicator.warning {background-color: var(--status-warning);animation: pulse-orange 1.5s infinite ease-in-out;
}.status-indicator.attack-blocked {background-color: var(--status-attack-blocked);animation: pulse-red 1s infinite ease-in-out;
}.attack-blocked-badge {display: inline-flex;align-items: center;justify-content: center;width: 18px;height: 18px;border-radius: 50%;background-color: var(--status-attack-blocked);color: white;font-size: 0.8rem;font-weight: bold;margin-left: 0.2rem;animation: badge-pop 0.5s ease-out;
}.attack-blocked<

相关文章:

25、工业防火墙 - 工控网络保护 (模拟) - /安全与维护组件/industrial-firewall-dcs-protection

76个工业组件库示例汇总 工业防火墙 - 工控网络保护 (模拟) 概述 这是一个交互式的 Web 组件,旨在模拟工业防火墙在保护关键工控网络(特别是 DCS - 分布式控制系统)免受网络攻击(如勒索软件传播)方面的核心功能。组件通过可视化简化的网络拓扑、模拟网络流量、应用防火…...

LAN(局域网)和WAN(广域网)

你的问题非常清晰&#xff01;我来用一个直观的比喻实际拓扑图帮你彻底理解LAN&#xff08;局域网&#xff09;和WAN&#xff08;广域网&#xff09;如何协同工作&#xff0c;以及路由器在其中的位置。你可以把整个网络想象成一座城市&#xff1a; 1. 比喻&#xff1a;城市交通…...

ArcGIS Pro 3.4 二次开发 - Arcade

环境&#xff1a;ArcGIS Pro SDK 3.4 .NET 8 文章目录 Arcade1 基本查询1.1 基本查询1.2 使用要素进行基本查询1.3 使用 FeatureSetByName 检索要素1.4 使用过滤器检索要素1.5 使用数学函数计算基本统计量1.6 使用 FeatureSet 函数的 Filter 和 Intersects 2 评估表达式2.1 评…...

PCB智能报价系统——————仙盟创梦IDE

软件署名 代码贡献&#xff1a; 紫金电子科技有限公司 文案正路&#xff1a;cybersnow 正文 对企业的竞争力有着深远影响。传统的 PCB 报价方式往往依赖人工核算&#xff0c;不仅耗时较长&#xff0c;还容易出现误差。随着科技的发展&#xff0c;PCB 自动报价系统应运而生&a…...

灾备认证助力构建数据资产安全防线‌

信息安全保障人员&#xff08;CISAW&#xff09;-灾难备份与恢复认证 1.权威认证体系&#xff1a;技术护城河‌ 在数字化进程加速的背景下&#xff0c;数据资产已成为政府与企业的核心资源&#xff0c;容灾备份能力成为保障业务连续性的关键。特别是近年来&#xff0c;因灾备缺…...

[特殊字符] 遇见Flask

一、初识Flask&#xff1a;像风一样自由 想象一下&#xff0c;你手里有一盒乐高积木——没有说明书&#xff0c;但每一块都精致小巧&#xff0c;任你组合成城堡、飞船&#xff0c;甚至整个宇宙。Flask就是这样一个存在。它不像Django那样“手把手教你搭房子”&#xff0c;而是…...

Axure高级交互设计:中继器嵌套动态面板实现超强体验感台账

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢!如有帮助请订阅专栏! Axure产品经理精品视频课已登录CSDN可点击学习https://edu.csdn.net/course/detail/40420 课程主题:中继器嵌套动态面板 主要内容:中继器内部嵌套动态面板,实现可移动式台账,增强数据表现…...

告别手动绘图!2分钟用 AI 生成波士顿矩阵

波士顿矩阵作为经典工具&#xff0c;始终是企业定位产品组合、制定竞争策略的核心方法论。然而&#xff0c;传统手动绘制矩阵的方式&#xff0c;往往面临数据处理繁琐、图表调整耗时、团队协作低效等痛点。 随着AI技术的发展&#xff0c;这一现状正在被彻底改变。boardmix博思白…...

iframe加载或者切换时候,短暂的白屏频闪问题解决

问题描述 iframe加载或者是切换iframe链接的时候&#xff0c;会有短暂的白屏&#xff0c;这个时候是在加载&#xff0c;目前没有想到避免的问题&#xff0c;应该是浏览器层面的&#xff0c;所以解决方法之一就是&#xff0c;用页面的主题背景色来遮盖一下&#xff0c;当他加载…...

Python数据可视化高级实战之一——绘制GE矩阵图

目录 一、课程概述 二、GE矩阵? 三、GE 矩阵图的适用范围 五、GE 矩阵的评估方法 (一)市场吸引力的评估要素 二、企业竞争实力的评估要素 三、评估方法与实践应用 1. 定量与定性结合法 2. 数据来源 六、GE矩阵的图形化实现 七、总结:GE 矩阵与 BCG 矩阵的对比分析 (一)GE…...

量子计算与云计算的融合:技术前沿与应用前景

目录 引言 量子计算基础 量子计算的基本原理 量子计算的优势与挑战 量子计算的发展阶段 云计算基础 云计算的基本概念 云计算的应用领域 云计算面临的挑战 量子计算与云计算的结合 量子云计算的概念与架构 量子云计算的服务模式 量子云计算的优势 量子云计算的发展…...

QMK固件RGB矩阵照明功能详解 - 打造你的专属炫彩键盘

QMK固件RGB矩阵照明功能详解 - 打造你的专属炫彩键盘 🌈 大家好!今天我要详细讲解QMK固件中的RGB矩阵照明功能,让你轻松打造一个真正炫彩的机械键盘!本文从基础原理到实战配置,手把手教你如何配置各种绚丽的灯光效果,即使你是小白也能轻松上手!文中所有代码都配有详细的…...

Rust 学习笔记:关于泛型的练习题

Rust 学习笔记&#xff1a;关于泛型的练习题 Rust 学习笔记&#xff1a;关于泛型的练习题问题 1下面代码能否通过编译&#xff1f;若能&#xff0c;输出是&#xff1f;下面代码能否通过编译&#xff1f;若能&#xff0c;输出是&#xff1f; Rust 学习笔记&#xff1a;关于泛型的…...

Panasonic松下焊接机器人节气

Panasonic松下焊接机器人节气装置 一、工作原理 松下焊接机器人节气装置的工作原理主要是通过智能控制技术&#xff0c;实现对焊接过程中气体流量的精确调节。例如&#xff0c;在焊接的不同阶段&#xff0c;根据焊接电流的大小自动调整气体的供给量。当焊接电流较强时&#x…...

2023 睿抗机器人开发者大赛CAIP-编程技能赛-本科组(国赛) 解题报告 | 珂学家

前言 题解 2023 睿抗机器人开发者大赛CAIP-编程技能赛-本科组(国赛)。 vp了下&#xff0c;题目挺好的&#xff0c;难度也适中&#xff0c;但是彻底红温了。 第二题&#xff0c;题意不是那么清晰&#xff0c; M i n ( K 1 , K 2 ) Min(K_1, K_2) Min(K1​,K2​)容易求&#x…...

LeetCode 3355.零数组变换 I:差分数组

【LetMeFly】3355.零数组变换 I&#xff1a;差分数组 力扣题目链接&#xff1a;https://leetcode.cn/problems/zero-array-transformation-i/ 给定一个长度为 n 的整数数组 nums 和一个二维数组 queries&#xff0c;其中 queries[i] [li, ri]。 对于每个查询 queries[i]&am…...

java21

1.数据结构之二叉树&#xff0c;二叉查找树&#xff0c;平衡二叉树 原理&#xff1a;和节点比较大小然后选左边还是右边 注意&#xff1a;中序遍历最常见&#xff0c;因为遍历的结果是从小到大 注意是任意节点&#xff0c;上面的二叉查找树的节点10的左子树高度是0&#xff0c;…...

ES的倒排索引和正排索引的区别及适用场景?为什么倒排索引适合全文搜索?

正排索引解析 1.存储机制 Elasticsearch 的文档存储机制比简单的固定字节分配更复杂&#xff0c;其核心原理如下&#xff1a; 1. 数值类型存储机制 对于 long/float/double 等数值类型&#xff1a; 文档ID2 → 偏移量 2 * sizeof(type) 例如&#xff1a;long 类型&#xf…...

ElasticSearch各种查询语法示例

1. 每种查询语法的区别与优缺点 Query DSL 区别: JSON 格式的结构化查询&#xff0c;功能强大&#xff0c;支持复杂查询逻辑&#xff0c;适用于 Elasticsearch 的核心查询场景。优点: 灵活&#xff0c;功能全面&#xff0c;支持全文搜索、精确匹配、聚合等&#xff1b;可组合…...

Ubuntu20.04部署KVM

文章目录 一. 环境准备关闭防火墙&#xff08;UFW&#xff09;禁用 SELinux更换镜像源检查 CPU 虚拟化支持 二. 安装KVM安装 KVM 及相关组件启动 libvirtd 服务验证安装创建虚拟机 一. 环境准备 4C8G&#xff0c;50G硬盘——VMware Workstation需要给虚拟机开启虚拟化引擎 roo…...

Android车载应用开发:Kotlin与Automotive OS深度实践

一、Android Automotive OS简介 Android Automotive OS&#xff08;AAOS&#xff09;是Google为车辆定制的操作系统&#xff0c;直接运行于车机硬件&#xff0c;提供完整的车载信息娱乐系统&#xff08;IVI&#xff09;。与Android Auto&#xff08;手机投影方案&#xff09;不…...

提示词工程(Prompt Engineering)是智能Agent交互中不可或缺的一环

Prompt Engineering 提示词&#xff0c;参考OpenAI提示词建议 2.5.1 概述 提示词工程(Prompt Engineering)是智能Agent交互中不可或缺的一环&#xff0c;它们指导智能体如何理解和回应用户的需求。这一节将探讨如何设计有效的提示词&#xff0c;以及如何通过精确的语言引导智能…...

九天画芯CEO张锦:AR 与 AI 融合重构智能终端生态,消费级市场迎来关键拐点

一、AR设备逆势突围&#xff1a;从技术验证到规模商用的跨越 根据洛图科技显示&#xff0c;2025 年 Q1 中国 XR&#xff08;ARVR&#xff09; 设备市场数据显示&#xff0c;AR 设备以 9.1 万台销量、116% 的同比增速远超 VR/MR 设备&#xff0c;这标志着消费级 AR 市场正式从 “…...

Python爬虫(32)Python爬虫高阶:动态页面处理与Scrapy+Selenium+BeautifulSoup分布式架构深度解析实战

目录 引言一、动态页面爬取的技术背景1.1 动态页面的核心特征1.2 传统爬虫的局限性 二、技术选型与架构设计2.1 核心组件分析2.2 架构设计思路1. 分层处理2. 数据流 三、代码实现与关键技术3.1 Selenium与Scrapy的中间件集成3.2 BeautifulSoup与Scrapy Item的整合3.3 分布式爬取…...

[案例七] NX二次开发标识特征的导入与布尔运算

本来做的是案例六NX二次开发减重块。但是当时在处理导入指定面时发现坐标转化存在很大问题,开了我很长时间,太难受了,决定放一放,昨天做了第六个案例采取了一种补救方法(实在不会的一种解决思路),个人认为NX这么优秀的软件应该有更好的方法,坐标转化真让人头大。刚开始…...

Canvas进阶篇:鼠标交互动画

Canvas进阶篇&#xff1a;鼠标交互动画 前言获取鼠标坐标鼠标事件点击事件监听代码示例效果预览 拖动事件监听代码示例效果预览 结语 前言 在上一篇文章Canvas进阶篇&#xff1a;基本动画详解 中&#xff0c;我们讲述了在Canvas中实现动画的基本步骤和动画的绘制方法。本文将进…...

Axure项目实战:智慧运输平台后台管理端-订单管理2(多级交互)

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢!如有帮助请订阅专栏! Axure产品经理精品视频课已登录CSDN可点击学习https://edu.csdn.net/course/detail/40420 课程主题:订单管理2 主要内容:中继器筛选、表单跟随菜单拖动、审批数据互通等 应用场景:订单管理…...

AG-UI:重构AI代理与前端交互的下一代协议标准

目录 技术演进背景与核心价值协议架构与技术原理深度解析核心功能与标准化事件体系典型应用场景与实战案例开发者生态与集成指南行业影响与未来展望1. 技术演进背景与核心价值 1.1 AI交互的三大痛点 当前AI应用生态面临三大核心挑战: 交互碎片化:LangGraph、CrewAI等框架各…...

鸿蒙版Flutter库torch_light手电筒功能深度适配

鸿蒙版Flutter库torch_light手电筒功能深度适配&#xff1a;跨平台开发者的光明之路 本项目作者&#xff1a;kirk/坚果 适配仓库地址 作者仓库&#xff1a;https://github.com/svprdga/torch_light# 在数字化浪潮的推动下&#xff0c;跨平台开发框架如 Flutter 凭借其高效、…...

【JAVA】中文我该怎么排序?

&#x1f4d8; Java 中文排序教学文档&#xff08;基于 Collator&#xff09; &#x1f9e0; 目录 概述Java 中字符串排序的默认行为为什么需要 Collator使用 Collator 进行中文排序升序 vs 降序排序自定义对象字段排序多字段排序示例总结对比表附录&#xff1a;完整代码示例 …...

WPF MVVM Community Toolkit. Mvvm 社区框架

Community Toolkit. Mvvm 社区框架 微软官方文档 主要内容&#xff1a;CommunityToolkit.Mvvm 框架 概念&#xff0c;安装&#xff0c;使用&#xff08;重要API&#xff1a;ObservableObject&#xff0c;RelayCommand&#xff09;源生成器&#xff08;[ObservableProperty]&…...

云原生安全之PaaS:从基础到实践的技术指南

🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 云原生安全之PaaS:从基础到实践的技术指南 一、基础概念 PaaS(Platform as a Service)平台 PaaS是一种云计算服务模型,为开发者提供应用程序的开发、部署和运行环境,涵…...

软件设计师考试需背诵知识点

1. 网络技术标准与协议 2. OSI/RM七层模型 3. 对称加密算法 4. 常见的非对称加密算法 5. 排序算法比较 6. 海明码公式 设数据位是n位&#xff0c;校验位是k位&#xff0c;则n与k必须满足以下关系&#xff1a; 7. McCabe度量法 McCabe度量法的核心公式为&#xff1a; V(G)E−…...

智慧社区新防线:华奥系AI技术如何让夏季安防“零隐患”

夏季社区安防隐患频发 随着夏季高温、暴雨、台风等极端天气增多&#xff0c;社区安全风险显著上升。高空建筑外墙材料因暴晒脱落、地下管道锈蚀堵塞导致积水、电动车充电自燃等事件频发&#xff0c;传统“人防物防”模式响应滞后、管理粗放&#xff0c;难以满足精细化防控需求…...

pinia的简单使用

yarn add pinia // 用来存储token,用户信息&#xff0c;等需要多地方使用的信息 src目录下新建store文件夹->新建index.ts import { createPinia } from "pinia";const store createPinia()export default storemain.ts 引用store import { createApp } from v…...

【Linux笔记】——线程池项目与线程安全单例模式

&#x1f525;个人主页&#x1f525;&#xff1a;孤寂大仙V &#x1f308;收录专栏&#x1f308;&#xff1a;Linux &#x1f339;往期回顾&#x1f339;&#xff1a; 【Linux笔记】——简单实习一个日志项目 &#x1f516;流水不争&#xff0c;争的是滔滔不息 一、线程池设计二…...

用户有一个Django模型没有设置主键,现在需要设置主键。

用户有一个Django模型没有设置主键&#xff0c;现在需要设置主键。 from django.db import modelsclass CategoryAssistentModel(models.Model):second_level_category models.CharField(max_length100, nullTrue, blankTrue)third_level_category models.CharField(max_len…...

SkyWalking 报错:sw_profile_task 索引缺失问题分析与解决

文章目录 SkyWalking 报错&#xff1a;sw_profile_task 索引缺失问题分析与解决问题背景SkyWalking 是否会自动创建 sw_profile_task 索引&#xff1f;答案&#xff1a;不会在初始化时创建相关索引包括&#xff1a; 问题原因分析解决方案✅ 解决思路&#xff1a;手动创建 sw_pr…...

多模态学习笔记

在模态对齐任务中,同一时刻不同类型的数据(模态)需要做好对齐,才能更好的感知内容,下面对其常见的多模态对齐任务进行如下总结: (1)文本图像 图像和文本特征提取后的对齐方法主要分为两类:基于对比学习的方法和基于跨模态注意力的方法。以下是它们的细化说明及具体实…...

【 Redis | 实战篇 扩展 】

目录 前言&#xff1a; 1.达人探店功能 1.1.点赞功能 1.2.排行榜 2.关注 2.1.共同关注 2.2.关注推送 3.附近商铺 3.1.GEO基本用法 3.2.获取附近商铺 4.签到 4.1.BitMap 4.2.实现签到 4.3.统计连续签到 5.UV统计 前言&#xff1a; 实现达人探店&#xff0c;好友…...

【HarmonyOS Next之旅】DevEco Studio使用指南(二十五) -> 端云一体化开发 -> 业务介绍(二)

目录 1 -> 工作原理 2 -> 约束与限制 2.1 -> 支持的设备 2.2 -> 支持的国家/地区 2.3 -> 支持的签名方式 3 -> 总结 3.1 -> 关键功能与工具 3.2 -> 开发流程 3.3 -> 典型场景与优化 3.4 -> 常见问题与解决 3.5 -> 总结 1 -> 工…...

空调系统虚拟标定技术:新能源汽车能效优化的革命性突破

title: 空调系统虚拟标定技术&#xff1a;新能源汽车能效优化的革命性突破 date: 2025-05-15 categories: 新能源汽车技术 tags: [空调系统, 虚拟标定, PID控制, 数字孪生, 能效优化] description: 本文深度解析空调系统虚拟标定技术在新能源汽车中的应用&#xff0c;揭秘如何…...

MCP Server开发并使用自定义天气查询工具查询城市天气

1.本地安装node.js环境 2.本地创建mcp文件夹&#xff0c;搭建mcp环境 在文件夹下cmd执行npm init -y初始化npm项目 3.创建weather-server.js文件&#xff0c;代码如下 // weather-server.js import { McpServer } from "modelcontextprotocol/sdk/server/mcp.js"…...

virtualbox选项“启用套嵌vt-x/amd-v“不可用

“启用套嵌vt-x/amd-v”选项不可用。 解决方法&#xff1a; 切换到virtualbox安装目录&#xff0c;执行如下命令查看虚拟机名称&#xff1a; .\VBoxManage.exe list vms比如返回: winxp 执行如下命令开启64位&#xff0c;注意把"winxp"换成你的虚拟机名字&#x…...

windows powershell 判断 进程号是否存在

在 Windows PowerShell 中&#xff0c;你可以使用多种方法来检查一个特定的进程号&#xff08;PID&#xff09;是否存在。以下是几种常用的方法&#xff1a; 方法1&#xff1a;使用 Get-Process 命令 你可以尝试获取具有特定 PID 的进程。如果该进程存在&#xff0c;Get-Proce…...

JAVA SE 多线程(下)

文章目录 &#x1f4d5;1. 常见的锁策略✏️1.1 乐观锁VS悲观锁✏️1.2 轻量级锁VS重量级锁✏️1.3 自旋锁✏️1.4 公平锁VS非公平锁✏️1.5 可重入锁和不可重入锁✏️1.6 读写锁 &#x1f4d5;2. 死锁✏️2.1 哲学家就餐问题✏️2.2 形成死锁的必要条件✏️2.3 如何避免死锁 &…...

DeepSeek+Dify之九多模态大模型识别图片

Dify之八添加各种在线大模型 文章目录 背景整体流程测试数据用到的节点开始列表操作LLM结束实现步骤1、新建工作流2、开始节点3、列表操作4、LLM节点(多模态大模型检索)5、结束节点测试发布导出背景 有了上一篇文章的基础,现在可以了解下多模态大模型识别图片的工作流 整体…...

软件工程(七):MQTT协议

概念 特性描述协议类型应用层协议&#xff08;基于 TCP/IP&#xff09;通信模式发布/订阅&#xff08;Publish/Subscribe&#xff09;网络开销小报文头仅 2 字节起&#xff0c;非常轻量保持长连接使用 Keep Alive 机制&#xff0c;适合持续连接的设备面向物联网广泛用于智能家…...

网络 :网络基础【网络框架认识】

网络 &#xff1a;网络基础【对网络的认识】 &#xff08;一&#xff09;网络发展&#xff08;二&#xff09;协议1、协议是什么&#xff1f;2、协议分层3、OSI七层模型4、TCP/IP五层(或四层)模型5、系统与网络的关系6、总结 &#xff08;三&#xff09;网络传输流程1、网络传输…...

Kotlin 极简小抄 P8(不可空类型、可空类型、注意事项、非空断言 !!)

Kotlin 概述 Kotlin 由 JetBrains 开发&#xff0c;是一种在 JVM&#xff08;Java 虚拟机&#xff09;上运行的静态类型编程语言 Kotlin 旨在提高开发者的编码效率和安全性&#xff0c;同时保持与 Java 的高度互操作性 Kotlin 是 Android 应用开发的首选语言&#xff0c;也可…...