MooTool Next 网络与系统工具实战指南:P5 六大工具的主进程架构、校验边界与跨平台实现 桌面应用开发工具【免费下载链接】MooToolHandy tool set for developers项目地址https://gitcode.com/gh_mirrors/mo/MooTool点击查看免费下载本篇技术指南以 MooTool NextElectron 重构版的 P5 网络与系统工具 Parity Checklist 为骨架系统讲解 HTTP 请求、翻译、Host、网络/IP、环境变量、系统信息六大工具在与 Java 基线对齐过程中的完整实现从主进程服务、IPC 校验边界、统一代理与密钥隔离到跨平台提权写入、SQLite 持久化和自动化验证。读完你将掌握 MooTool Next 网络与系统工具的可复现配置、源码级调用链与发布前验收口径。1. P5 工具全景六项工具的能力基线P5 阶段以当前 Java 版github-develop-ts分支为基线将六项网络与系统工具迁移到 Electron 重构版Next每一项目标均是功能完整 布局一致 数据兼容。清单与状态如下工具Java 布局/能力基线Next 实现状态HTTP 请求请求集合、URL/Method、Params/Header/Cookie/Body、响应三 Tab、cURL、保存和历史完整请求编辑、主进程 Undici 客户端、代理、超时/取消、10 MB 响应上限、cURL 导入导出和 Java 兼容 SQLite 表待对齐验收翻译翻译/单词本/历史三 Tab、源/目标语言、翻译器、自动翻译500 ms 自动翻译、Google/Bing 轻量双实现与 fallback、代理/超时/取消、单词本 CRUD/重译和历史待对齐验收Host方案列表、文本编辑、查找替换、导入导出、当前系统 Hosts、切换方案 CRUD、编辑/查找替换、文件导入导出、系统 Hosts 查看、按平台提权写入和 DNS 刷新待对齐验收网络/IP命令输出与 IPv4、ping、DNS、地址解析、WHOIS、本机地址白名单系统命令、IPv4/Long 双向转换、DNS 解析、WHOIS、本机 IPv4/IPv6、停止与错误码待对齐验收环境变量用户/系统变量直接新增、编辑、删除Java Properties Tab、表格、导出用户/系统变量直接新增、编辑、删除当前进程/Electron 运行属性只读视图、搜索、复制、刷新和完整导出待对齐验收系统信息系统/CPU/内存/存储/网络五 Tabsysteminformation结构化采集、五 Tab、刷新、复制、序列号脱敏待对齐验收从源码结构看六项工具的 Renderer 页面分布在 src/features/http/HttpTool.tsx、src/features/translation/TranslationTool.tsx、src/features/host/HostTool.tsx、src/features/net/NetTool.tsx、src/features/variables/VariablesTool.tsx 与 src/features/hardware/HardwareTool.tsx 中均统一使用tool-page p5-tool页面容器。2. 架构边界主进程集中执行与 Renderer 隔离P5 实现遵循一条严格边界Renderer 只使用 typed preload APIHTTP、翻译、SQLite、Hosts、DNS、WHOIS、系统命令和硬件采集全部在 Electron 主进程执行。typed preload 桥接所有 P5 能力以 IPC channel 形式暴露在window.mootool上见 next/electron/preload/index.ts。例如sendHttpRequest、translate、readSystemHosts/writeSystemHosts、runNetworkCommand/cancelSystemCommand、getEnvironmentSnapshot、getSystemInfo等。IPC 注册与校验主进程入口 next/electron/main/index.ts 中http:send、translation:send、host:write-system、system:network-command、system:environment-set等 handler 均先经过 p5Validation.ts 的归一化校验再交给服务执行。校验覆盖请求方法仅GET/POST/PUT/PATCH/DELETE/HEAD/OPTIONS、URL 长度上限 8192、Body 上限 5 MB、Param/Header/Cookie 每类最多 100 条、翻译文本上限 50000、语言对归一化、Host 内容上限 2 MB、超时钳制在 1000~120000 ms缺省 30000、请求 ID 白名单字符以及系统命令 action 枚举。环境变量写入校验normalizeEnvironmentVariableInput强制 scope 只能是user/system变量名必须匹配^[A-Za-z_][A-Za-z0-9_]*$值长度 ≤ 65535 且不允许包含 NUL 与换行见 p5Validation.ts。统一代理设置HTTP 与翻译共用一套代理配置。代理密码通过safeStorage.encryptString加密后以 base64 存入secrets只有主进程用safeStorage.decryptString读取不进入 Renderer 和普通设置 JSON见 index.ts。翻译另有一条系统代理兜底逻辑应用未启用代理时调用session.defaultSession.resolveProxy解析 Chromium/系统代理并提取首个 HTTP CONNECT 条目以此对齐 Java 版 JVM 自动拾取系统代理的行为getTranslationProxyConfiguration配合parseChromiumProxyDirective实现networkService.ts。设置项设置 Schema 自 P5 起升级提供 HTTP 请求超时、翻译超时、默认翻译器和源/目标语言。当前 contracts/settings.ts 中appSettingsSchemaVersion已迭代至 14相关字段仍稳定存在network.requestTimeoutMs默认 30000、network.translationTimeoutMs默认 15000、network.proxyEnabled/proxyHost/proxyPort/proxyUsername、tools.translationProvider默认google、tools.translationSourceLang默认auto、tools.translationTargetLang默认zh-CN。可取消请求生命周期HTTP 与翻译共享AbortController集合网络命令走spawnSIGTERM。网络命令参数一律使用白名单参数数组绝不执行 Renderer 传入的脚本或 Shell 字符串见 systemService.ts 中networkCommand的按平台参数构造。数据层HTTP 请求、请求历史、Host 方案、翻译单词本和翻译历史五类数据使用表名与 Java 版一致的 SQLite Repository见下节。3. 持久化Java 兼容表名的 SQLite RepositoryP5Repository 基于 Node 内置node:sqlite的DatabaseSync初始化时开启PRAGMA journal_mode WAL与busy_timeout 3000并创建五张 Java 兼容表表名用途关键约束t_msg_httpHTTP 请求集合msg_name UNIQUE携带响应体/响应头/响应 Cookiet_http_request_historyHTTP 请求历史仅保留最新 500 条create_time索引t_hostHost 方案name UNIQUEt_translation_word翻译单词本按(source_text, source_lang, target_lang)判重更新modified_time索引t_translation_history翻译历史仅保留最新 500 条create_time索引translator_type存大写集成测试 p5Repository.integration.test.ts 使用临时目录MooToolNext.db覆盖了五张表的写入/更新/查询HTTP 请求按名字 upsert、更新后响应体同步刷新Host 方案支持按名称和内容搜索includeContentfalse时仅按名称单词本重复保存同一(source, lang)组合会走更新分支。历史表通过DELETE ... WHERE id NOT IN (SELECT id ... LIMIT 500)控制行数上限防止无限膨胀。4. HTTP 请求工具主进程 Undici 客户端的完整请求链路4.1 布局对齐HTTP 页面保留 Java 版左侧请求集合 上方 URL/Method 请求/响应上下分区的工作流。页面截图见 p5-http-1440-light.png1440 x 920 浅色深色视口对应 p5-http-1080-dark.png。4.2 请求构造与发送核心实现在 networkService.ts 的sendHttpURL 归一化buildRequestUrl对无协议头的地址自动补http://并在 GET/HEAD/OPTIONS 时把启用的 Params 拼入 query string禁用条目enabledfalse被enabledEntries过滤掉。Header/Cookie 合并buildHeaders将启用的 Header 键值对转为对象再把启用的 Cookie 按namevalue以;连接写入Cookie头。Body 策略buildRequestBody对 GET/HEAD/OPTIONS 不发送 body有显式 body 时按bodyType设置Content-Type缺省text/plain无 body 但有 Params 时自动编码为application/x-www-form-urlencoded表单。传输层使用undici的fetchredirect: follow代理开启时通过按host|port|username|password缓存的ProxyAgentdispatcher 发送。响应处理响应按Content-Type声明的 charset 解码缺省 UTF-8body 若可解析为 JSON 则自动JSON.stringify(..., null, 2)美化响应 Header 逐行格式化set-cookie单独归入 Cookie 区。10 MB 上限maxResponseBytes 10 * 1024 * 1024readLimitedResponse先查content-length再验实际字节数超限抛RESPONSE_TOO_LARGE。错误分类classifyNetworkError把失败归结为ABORTED、TIMEOUT、NETWORK、INVALID_REQUEST、RESPONSE_TOO_LARGE五类写入HttpResponseResult.errorCode契约见 contracts/network.ts。4.3 超时/取消与自动历史begin(requestId, timeoutMs)为每个请求创建独立的AbortController并挂setTimeouttimerunref()同 ID 发起新请求会先取消旧请求cancel(requestId)显式中断。主进程http:sendhandler 在发送成功后自动把请求与响应写入历史表再返回index.tsRenderer 无需额外调用。4.4 cURL 导入导出前端 httpTools.ts 提供parseCurlCommand/toCurlCommand支持-X/--request、-H/--header含 Content-Type 识别、-d/--data*自动把 GET 升级为 POST、-b/--cookie、--url带引号与转义的状态机分词器保证 shell 风格参数正确解析。4.5 集成验证networkService.integration.test.ts 起本地 HTTP 服务覆盖GET Query 参数拼装、自定义 Header 透传、Cookie 发送与set-cookie回读、无显式 body 时表单参数编码、响应 JSON 格式化以及翻译长文本切分与语言码映射。5. 翻译工具500 ms 自动翻译与双引擎 fallback5.1 布局与自动翻译翻译页面保留翻译/单词本/历史Tab 顺序。TranslationTool.tsx 中源码变化通过useEffect触发500 ms debounce自动翻译对engine.automatic的引擎每次输入先取消上一个在途请求并用自增requestSequence保证旧响应不会覆盖新结果从单词本或历史回填restore不会触发重新在线翻译。5.2 引擎实现三套引擎均为轻量直接实现注册在 translation/index.tsGooglegoogle.ts调用translate.googleapis.com/translate_a/singleclientgtx长文本按 1800 字符切块、并发 3 拼接结果语言码通过googleLanguage把 MooTool 内部码如jp→ja、wyw→lzh、cht→zh-TW映射为 Google 码。Bingbing.ts先从cn.bing.com/translator抓取IG与params_AbusePreventionHelper令牌建立会话带过期时间再单次 POST 到ttranslatev3与 Java 版保持一致——不做客户端切块。DeepLdeepl.tsAPI Key 以safeStorage加密保存、仅主进程读取按:fx结尾自动选择api-free.deepl.com或api.deepl.com为控制转义膨胀每块 ≤ 12000 字符、保证单个请求 body 低于 128 KiB错误码规范化DEEPL_INVALID_KEY、DEEPL_QUOTA_EXCEEDED、DEEPL_RATE_LIMITED并主动丢弃远程响应体以防回显凭证。5.3 fallback 顺序与冷却translationProviderOrdernetworkService.ts决定首选 Google 时顺序为google → bing首选 Bing 时反之deepl 不参与 fallback互不支持的翻译器组合避免误判。某个 provider 失败后进入10 分钟冷却providerCooldownMs期间shouldSkipProvider直接跳过他避免每次击键都阻塞在死掉的端点上成功后清除冷却。连接/body 超时对齐 Java 的GoogleTranslatorUtilconnect 5 秒、body 10 秒。5.4 长文本切分与命名辅助translation/text.ts 的splitTranslationText在切块时优先在自然断点空白、标点处断开并回退代理对surrogate pair保证 emoji 不被截断——集成测试专门断言了 emoji 场景。翻译为英文时translationNaming.ts 还提供标识符拆分与camelCase/PascalCase/snake_case/UPPER_SNAKE_CASE/kebab-case五种命名格式转换便于把译文直接用作代码命名。6. Host 工具方案管理与跨平台提权写入6.1 布局与方案 CRUDHost 页面为左侧方案 右侧工具栏/编辑器结构系统 Hosts 通过独立对话框含路径与可写状态查看。方案支持新建、重命名、删除、按名称或内容搜索开关控制、导入文本文件与导出hosts.txt编辑器集成查找/替换栏Cmd/CtrlF或R唤起支持前后定位、全部替换。编辑后 250 ms 空闲自动保存保存队列串行化避免并发写覆盖。6.2 系统 Hosts 写入矩阵systemService.ts 的写入策略为先readHosts读取/etc/hostsWindows 为SystemRoot\System32\drivers\etc\hosts并探测可写性writeHosts先尝试普通写入遭遇EACCES/EPERM时按平台提权macOSosascript执行do shell script ... with administrator privileges复制临时文件后chmod 644并dscacheutil -flushcacheWindowspowershell.exe -Verb RunAs拉起提权进程执行Copy-Item ... -ForceLinuxpkexec执行cpchmod 644。写入前normalizeHostsContent统一 CRLF→LF、补齐末尾换行、拒绝 NUL上限 2 MB。提权临时文件以0600权限创建、finally中清理。写入成功后主进程会记录activeHostId并刷新托盘菜单index.ts。DNS 刷新动作由提权命令携带完成macOSdscacheutil -flushcacheWindowsipconfig /flushdnsLinuxresolvectl flush-caches。7. 网络/IP 工具白名单命令与扫描能力7.1 布局网络/IP 保留左侧命令结果 右侧功能区的桌面宽屏结构。截图见 p5-net-1440-light.png浅色与 p5-net-1080-dark.png深色。右侧功能区包含 IPv4/Long 双向转换、PING、网段扫描、端口扫描、DNS 解析、WHOIS、DNS 刷新与本机 IPv4/IPv6 地址。7.2 命令执行安全runNetwork支持interfaces、connections、ping、ping-range、port-scan、flush-dns、resolve、whois八个 action契约见 contracts/system.ts。其中系统命令经networkCommand生成固定参数数组actionWindowsmacOSLinux网卡信息ipconfig.exe /all/sbin/ifconfigip -details address连接状态netstat.exe -anonetstat -natnetstat -natpingping.exe -n 4 host/sbin/ping -c 4 host/sbin/ping -c 4 hostDNS 刷新ipconfig.exe /flushdns/usr/bin/dscacheutil -flushcacheresolvectl flush-cachesresolve与whois不依赖 shell前者走node:dns/promises的lookup(..., { all: true })返回全部地址后者用createConnection直连whois.iana.org:43解析refer/whois:头后跟进授权服务器二次查询。输出上限 2 MB超时由clampTimeout1000~120000缺省 15000控制cancel对子进程发SIGTERM。错误码含ABORTED/TIMEOUT/PERMISSION/UNSUPPORTED/COMMAND_FAILED/INVALID_TARGET。7.3 网段扫描与端口扫描parseIpv4Range(192.168.10)展开为192.168.10.1~.254共 254 个地址concurrentMap并发 32 个 ping单次上限 800 ms输出可达主机列表parsePortSpec支持3306,80-82,22形式与start-end区间未填写时默认扫描 60 个常见端口ssh/mysql/redis/kafka/elasticsearch 等带服务名标注自定义端口上限 4096TCP 探测并发 96createConnection一次 connect 判断开/关超时下限 100 ms。7.4 IPv4/Long 双向转换ipv4ToLong严格校验四段 0~255longToIpv4校验0xFFFFFFFF上界0 右移处理无符号语义前端 netTools.ts 与主进程实现保持一致systemService.test.ts验证了192.168.1.1 ⇄ 3232235777及非法输入拒绝。8. 环境变量工具用户/系统变量直改与运行时只读视图8.1 布局环境变量页面保留 Java 版 Tab、表格/键值结构与刷新、复制、导出操作第二个 Tab 展示当前进程/Electron 运行属性只读视图process.version、process.versions.electron/chrome/node、process.execPath、process.platform/arch、process.cwd、locale 与 timeZone替代 Java Properties Tab——这是已批准差异之一保留相同的运行时属性检查心智。8.2 持久化写入setEnvironmentVariable/deleteEnvironmentVariablesystemService.tsWindows通过 PowerShell[Environment]::GetEnvironmentVariables([EnvironmentVariableTarget]::User/Machine)读写system作用域用-Verb RunAs提权脚本以 UTF-16LE 编码做-EncodedCommand规避引号注入。macOS/Linux 用户级写入~/.MooTool/environment0600权限export KEYvalue语法并自动在~/.profileLinux或~/.zshenvmacOS追加带# MooTool environment 标记的 source 块macOS 额外调用launchctl setenv/unsetenv同步到当前登录会话。macOS 系统级写入/etc/zshenvLinux 系统级写入/etc/environment无export的KEYvalue语法权限不足时走pkexec/osascript提权复制。写入后syncCurrentProcessEnvironment按 user→system 优先级把变更合并进当前进程process.env使正在运行的应用立即生效。解析与序列化对单引号、反斜杠、双引号做了对称转义systemService.test.ts断言了含的 JAVA_HOME 往返一致。校验层拒绝非法变量名与含换行的值。9. 系统信息工具systeminformation结构化采集getSystemInfosystemService.ts并行调用si.osInfo/system/cpu/currentLoad/mem/time/diskLayout/fsSize/networkInterfaces/networkStats产出五个 Tab 分组系统、CPU、内存、存储、网络。关键实现细节系统平台、发行版、内核、架构、主机名、厂商/型号、运行时长1d 2h 30m格式、时区以及脱敏后的序列号——mask()只保留前 2 位与后 2 位ab****cd防止硬件序列号泄漏CPU物理/逻辑核数、性能核与能效核、基础/最大频率、当前负载百分比内存总量/已用/可用/活跃、使用率、Swap 统计formatBytes统一按 1024 进制格式化存储磁盘布局设备、类型、接口、序列号脱敏、容量与文件系统类型、总量、已用、可用、使用率两组网络每张网卡的 IPv4/IPv6/MAC/MTU/速率/状态以及从networkStats关联的收/发字节数。字段文案与 Java OSHI 结果允许平台等价——即核心数据一致、命名可以不同已批准差异。前端 HardwareTool.tsx 支持按 Tab 复制当前分组的纯文本并在英文标签与简中/英文/日文文案之间做映射。10. 布局与行为对齐清单原文案清单在 p5-network-system.md 中逐项打勾确认汇总如下六个页面仅保留主标题无小标题和面包屑HTTP 保留左侧请求集合 上方 URL/Method 请求/响应上下分区的 Java 工作流翻译保留翻译/单词本/历史 Tab 顺序单词本或历史回填不触发重复在线翻译Host 保留左侧方案 右侧工具栏/编辑器系统 Hosts 通过独立对话框查看网络/IP 保留左侧命令结果 右侧功能区的桌面宽屏结构环境变量和系统信息保留 Tab、表格/键值结构与刷新、复制、导出操作两版均支持直接修改用户/系统环境变量所有页面具有简体中文、英文、日文文案并跟随系统明暗主题1440 x 920 浅色与 1080 x 720 深色共 12 张页面截图已建立位于next/doc/screenshots/p5-tool-viewport-theme.png如 p5-host-1440-light.png、p5-variables-1080-dark.png、p5-hardware-1440-light.png、p5-translation-1080-dark.png两组视口下六页均无窗口级或工作区级横向溢出、控件遮挡和空白渲染。11. 自动化验证与测试证据P5 的自动化证据对应 第 4 节networkService.integration.test.ts本地 HTTP 服务覆盖 Query、Header、Cookie、表单 Body、响应格式化以及翻译长文本切分含自然断点、空白收尾、emoji 代理对与语言码映射p5Repository.integration.test.ts临时 SQLite 覆盖 HTTP 新增/更新、请求历史、Host、单词本判重更新和翻译历史systemService.test.ts覆盖 IPv4/Long 双向边界、Hosts 换行归一化与 NUL 校验、/24网段展开254 个地址、端口规格解析3306,80-82,22与默认常见端口、越界拒绝、环境变量文件解析/更新/删除以及真实 TCP 监听端口探测HTTP 与网络页面纯逻辑另有单元测试Electron E2E使用本地 HTTP 服务覆盖真实主进程请求、保存集合与历史并覆盖 Host 方案持久化、单词本、DNS 解析、环境变量和硬件信息全量 Vitest28 个测试文件、83 项测试通过Electron Playwright10 项 E2E 通过TypeScript 类型检查、Electron/Vite 生产构建和git diff --check通过React Doctor100 / 100无诊断问题。注以上数量为 Parity Checklist 在 2026-07-16 更新时点的验收记录后续代码演进可能使具体数字发生变化。12. 已批准差异差异原因状态环境变量第二个 Tab 展示 Electron 运行属性不再显示 Java PropertiesNext 不运行在 JVM 中保留相同的运行时属性检查心智不阻塞翻译直接维护 Google/Bing 两个轻量实现不建立 Provider 接口层用户明确要求避免过重的 Provider 架构当前仍保留首选服务和自动 fallback不阻塞系统信息由systeminformation提供字段文案与 Java OSHI 结果允许平台等价两套底层库字段命名不同核心系统/CPU/内存/存储/网络信息一致不阻塞13. 发布前共享验收跟踪以下项目属于发布前共享 parity、外部服务和跨平台验收不阻塞 P5 实现范围已完成的结论使用 Java 版同尺寸截图完成六个工具的逐页人工 parity sign-off在 Windows 与 Linux 安装包中复测ipconfig/ip、ping、DNS flush、Hosts 提权和系统信息字段使用真实代理账号验证 HTTP 与两个翻译服务的代理、认证、超时和 fallback为保护开发机和 CI自动化不实际覆盖系统 Hosts 写入和 DNS flush发布前需在隔离环境执行权限矩阵用旧版真实数据库样本验证五张 P5 业务表迁移统一放在 P7 数据迁移阶段完成。验收方法论上建议按此清单逐项执行先跑通 网络工具集成测试 与 Repository 集成测试 作为自动化基线再在 Windows/Linux 隔离环境手工复测提权矩阵与 DNS 刷新最后用真实代理账号校验 HTTP/翻译的认证与 fallback 行为。赞分享桌面应用开发工具【免费下载链接】MooToolHandy tool set for developers项目地址https://gitcode.com/gh_mirrors/mo/MooTool点击查看免费下载相关推荐MooTool Next Flutter 0.1.0 P5 网络功能验收HTTP 请求、Host 方案与网络工具的实现与边界盘点MooTool Next Flutter 0.1.0 P5 网络功能验收HTTP 请求、Host 方案与网络工具的实现与边界盘点 本文是对 MooTool N桌面应用开发工具MooTool Next Flutter 版 P5 网络功能对齐HTTP 客户端、网络工具与 Host 方案的 Electron 等价实现MooTool Next Flutter 版 P5 网络功能对齐HTTP 客户端、网络工具与 Host 方案的 Electron 等价实现 MooTool 在桌面应用开发工具MooTool Next Flutter 平台矩阵解析macOS 桌面通道实现与跨平台打包边界MooTool Next Flutter 平台矩阵解析macOS 桌面通道实现与跨平台打包边界 本指南以仓库中的架构决策记录 ADR 003平台矩阵 htt桌面应用开发工具上一篇5个关键步骤掌握WE Learn智能助手提升在线学习效率的完整指南下一篇OpenSearch 2.5.0 版本全解析新增功能、核心源码实现与升级指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考